将日期值附加到 bash 脚本中的目录路径

Appending the values of the date to a directory path in a bash script

我正在编写一个脚本来存储前一天收集的日志文件。我想将这些日志文件存储在目录路径中,年复一年,日复一日:2016/Jan/01.

我写了以下命令来确定昨天的日期:

DATE=$(date +%Y-%m-%d -d yesterday)

将昨天的日期显示为 yyyy-mm-dd

创建目录并附加这些值的最佳方法是什么:

mkdir +%Y + '/' + -%m + '/' + -%d

并将月份解释为月份的前三个字母 Jan 而不是数字 01

如果父目录不存在,只需使用 mkdir 中的 -p 创建父目录:

yesterday=$(date "+%Y/%m/%d" -d "yesterday")
mkdir -p "$yesterday"

请注意,我在日期格式中使用 / 作为分隔符,因此您已经有了字符串 2016/05/24.

这样做后,我得到:

$ tree 2016/
2016/
└── 05
    └── 24

2 directories, 0 files

来自man mkdir

   -p, --parents
          no error if existing, make parent directories as needed