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

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

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

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

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

在 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'

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

$ 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 的嵌套目录中快速创建文件