您知道我们可以从命令行创建以当前日期、时间、月份和年份命名的目录或文件吗? 不? 没问题。 本教程介绍了如何在 Linux 中创建名称为当前时间戳的目录或文件。
当您想将某些内容(例如照片)保存在以实际拍摄日期命名的目录中时,这将很有帮助。 例如,如果照片是在 1984 年 10 月 16 日拍摄的,您可以创建一个名为“16-10-1984”的文件夹。
创建带有时间戳的文件将使您的工作更轻松地按顺序排列文件。 当您想使用脚本自动执行任务时,这也很有用。
以下命令将创建一个目录或文件,并根据您计算机的时钟将其命名为当前日期/时间/月/年。 因此,请确保您在系统上设置了正确的时间。
内容
在 Linux 中创建以当前日期/时间/月/年命名的目录或文件
要创建目录并将其命名为当前日期,只需运行:
$ mkdir "$(date +"%d-%m-%Y")"
或者,
$ mkdir $(date +"%d-%m-%Y")
此命令将创建一个目录并将其命名为今天的日期 dd:mm:yyyy
格式。
示例输出:
06-06-2020
要切换到此目录,只需替换 mkdir
和 cd
命令如下。
$ cd "$(date +"%d-%m-%Y")"
同样,要创建一个以当前日期、时间、月份、年份命名的文件,只需替换 mkdir
和 touch
命令:
$ 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")
以上三个命令都会产生相同的结果。
要创建文件,只需替换 mkdir
和 touch
命令。
更多例子
如果您只想要当前日期的某一天,请使用:
$ 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命令时间戳