将输出重定向到尚不存在的子文件夹

gla*_*vić 5 linux bash cron

我目前将 crontab 脚本输出重定向到某个存在的文件夹中的文件,如下所示:

echo "test" > `date "+/tmp/%Y%m%d_%H%M.log"`
Run Code Online (Sandbox Code Playgroud)

我想将输出重定向到子文件夹,该子文件夹可能尚不存在(.../year/month/...,因此应创建子文件夹:

echo "test" > `date "+/tmp/%Y/%m/%d_%H%M.log"`
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Den*_*ker 3

只需创建目录即可。mkdir 的标志-p实现了两件事:

  • 创建整个路径
  • 如果目录已经存在,请不要抱怨

所以:

mkdir -p  $(date "+/tmp/%Y/%m/") && echo "test" > $(date "+/tmp/%Y/%m/%d_%H%M.log")
Run Code Online (Sandbox Code Playgroud)

下次请在 unix.stackexchange 上问这样的问题,这里有点题外话。