将日期添加到使用 mkdir 创建的文件夹的名称中

将日期添加到使用 mkdir 创建的文件夹的名称中

我有一个脚本,执行时会生成一些文件。我修改了脚本,在其顶部添加了以下两行

mkdir ABC
cd ABC

这样形成的新文件就会在该目录中ABC。我的问题是,如果我在 3 月 26 日运行脚本,如何将当前日期添加到此目录名称中ABCABC_mar_26日期格式没有具体标准,ABC_03_26也可以)。

答案1

要得到ABC_03_26

mkdir "ABC_$(date +'%m_%d')"

如果您想要月份名称:

mkdir "ABC_$(LC_ALL=C date +'%b_%d')"

请注意,为%b您提供区域设置的缩写月份名称,但第一个字母大写。

通过zsh,您可以:

mkdir "ABC_${(L):-$(LC_ALL=C date +'%b_%d')}"

或使用迅速扩张:

$ LC_ALL=C; print -rl -- ${(L)${(%):-%D{%b_%d}}}
mar_26

答案2

这是针对您的问题的具体示例应用程序,Windows/cygwin 用户可能也会感兴趣。我曾经创建过一个.bat批处理脚本,通过创建一个以当前日期时间命名的子文件夹来自动备份文件。首先,从环境中获取变量%time%,然后格式化以最终具有前导0.然后将字符串连接到一个新变量%datetimef%并传递给mkdir

set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%

set year=%date:~-4%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%

set datetimef=%year%%month%%day%-%hour%%min%%secs%

mkdir version%datetimef%
cp *.pdf version%datetimef%/

相关内容