创建以当前日期/时间/月/年命名的目录或文件

您知道我们可以从命令行创建以当前日期、时间、月份和年份命名的目录或文件吗? 不? 没问题。 本教程介绍了如何在 Linux 中创建名称为当前时间戳的目录或文件。

当您想将某些内容(例如照片)保存在以实际拍摄日期命名的目录中时,这将很有帮助。 例如,如果照片是在 1984 年 10 月 16 日拍摄的,您可以创建一个名为“16-10-1984”的文件夹。

创建带有时间戳的文件将使您的工作更轻松地按顺序排列文件。 当您想使用脚本自动执行任务时,这也很有用。

以下命令将创建一个目录或文件,并根据您计算机的时钟将其命名为当前日期/时间/月/年。 因此,请确保您在系统上设置了正确的时间。

内容

  1. 在 Linux 中创建以当前日期/时间/月/年命名的目录或文件
    1. 创建具有当前日期的自定义名称的目录或文件
    2. 创建 ISO 格式的文件目录
      1. 更多例子

在 Linux 中创建以当前日期/时间/月/年命名的目录或文件

要创建目录并将其命名为当前日期,只需运行:

$ mkdir "$(date +"%d-%m-%Y")"

或者,

$ mkdir $(date +"%d-%m-%Y")

此命令将创建一个目录并将其命名为今天的日期 dd:mm:yyyy 格式。

示例输出:

06-06-2020
在 Linux 中创建以当前日期、时间、月、年命名的目录

要切换到此目录,只需替换 mkdircd 命令如下。

$ cd "$(date +"%d-%m-%Y")"

同样,要创建一个以当前日期、时间、月份、年份命名的文件,只需替换 mkdirtouch 命令:

$ touch "$(date +"%d-%m-%Y")"

创建具有当前日期的自定义名称的目录或文件

带有日期/时间/月/年的目录或文件的自定义名称怎么样? 这也是可能的。

$ mkdir ostechnix.com-$(date +"%d-%m-%Y")

此命令将创建一个名为的目录 "ostechnix.com-06-06-2020".

创建具有当前日期的自定义名称的目录或文件

要创建具有自定义名称的文件:

$ touch ostechnix.com-$(date +"%d-%m-%Y")

创建 ISO 格式的文件目录

如果您想使用 ISO 日期格式(例如 2020-06-06) 和 ls 将按日期顺序列出它们,运行:

$ mkdir $(date -I)

或者,

$ mkdir $(date +%F)

或者,

$ mkdir $(date +"%Y-%m-%d")

以上三个命令都会产生相同的结果。

要创建文件,只需替换 mkdirtouch 命令。

更多例子

如果您只想要当前日期的某一天,请使用:

$ mkdir "$(date +%d)"

此命令只会创建名称为当前日期的目录。 IE 06.

同样,您可以创建名称中仅包含当前月份的目录:

$ mkdir "$(date +%m)"

仅限年:

$ mkdir "$(date +%y)"

此命令将使用当前年份的最后两位数字命名目录,即 20. 如果你想要全年(即 2020) 在名称中,使用 Y (大写 Y)。

$ mkdir "$(date +%Y)"

目录名称与当前时间如何? 这也是可能的。

$ mkdir "$(date +%r)"

此命令将创建一个文件夹并使用当前时间命名它 hh:mm:ss 格式。

示例输出:

'02:59:52 PM IST'

我们甚至可以创建名称中包含当前分钟和秒的目录。 例如,以下命令将创建一个目录并以当前秒命名。

$ mkdir "$(date +%S)"

这里,S 是大写的。

要使用当前分钟命名目录,请使用大写 M

$ mkdir "$(date +%M)"

在上述所有示例中,我们创建了名称上带有数字的目录。 如果您想使用当前日期/月份的实际名称(如星期日、十月等)命名目录怎么办? 这很简单!

$ mkdir "$(date +%A)"

上面的命令将创建一个名为的目录 “周六” 即今天的名字。

创建具有当天名称的目录创建具有当前日期名称的目录

创建一个以当前月份为名称的目录(即 十月), 跑:

$ mkdir "$(date +%B)"

以下是支持的运算符列表,您可以使用这些运算符为目录命名,包括当前日期、月份、时间、年份、星期几、月份中的某天、时区等。

       %a     locale's abbreviated weekday name (e.g., Sun)         %A     locale's full weekday name (e.g., Sunday)         %b     locale's abbreviated month name (e.g., Jan)         %B     locale's full month name (e.g., January)         %c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)         %C     century; like %Y, except omit last two digits (e.g., 20)         %d     day of month (e.g., 01)         %D     date; same as %m/%d/%y         %e     day of month, space padded; same as %_d         %F     full date; same as %Y-%m-%d         %g     last two digits of year of ISO week number (see %G)         %G     year of ISO week number (see %V); normally useful only with %V         %h     same as %b         %H     hour (00..23)        %I     hour (01..12)         %j     day of year (001..366)         %k     hour, space padded ( 0..23); same as %_H         %l     hour, space padded ( 1..12); same as %_I         %m     month (01..12)         %M     minute (00..59)         %n     a newline         %N     nanoseconds (000000000..999999999)         %p     locale's equivalent of either AM or PM; blank if not known         %P     like %p, but lower case         %q     quarter of year (1..4)         %r     locale's 12-hour clock time (e.g., 11:11:04 PM)         %R     24-hour hour and minute; same as %H:%M         %s     seconds since 1970-01-01 00:00:00 UTC        %S     second (00..60)         %t     a tab         %T     time; same as %H:%M:%S         %u     day of week (1..7); 1 is Monday         %U     week number of year, with Sunday as first day of week (00..53)         %V     ISO week number, with Monday as first day of week (01..53)         %w     day of week (0..6); 0 is Sunday         %W     week number of year, with Monday as first day of week (00..53)         %x     locale's date representation (e.g., 12/31/99)         %X     locale's time representation (e.g., 23:13:48)         %y     last two digits of year (00..99)         %Y     year         %z     +hhmm numeric time zone (e.g., -0400)         %:z    +hh:mm numeric time zone (e.g., -04:00)         %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)         %:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)         %Z     alphabetic time zone abbreviation (e.g., EDT)

有关更多详细信息,请参阅手册页。

$ man date
$ man mkdir
$ man touch

希望这可以帮助。

建议阅读:

  • 如何在 Linux 中从文本文件创建目录
  • mktemp 命令教程以及初学者示例
  • 如何在 Linux 中的嵌套目录中快速创建文件

命令行创建目录创建文件LinuxLinux命令时间戳