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

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

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

echo "test" > `date "+/tmp/%Y%m%d_%H%M.log"`

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

echo "test" > `date "+/tmp/%Y/%m/%d_%H%M.log"`

我怎样才能做到这一点?

答案1

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

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

所以:

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

下次请在 unix.stackexchange 上询问类似问题,这里有点离题。

答案2

您需要使用mkdir -p以下命令创建文件夹:

mkdir -p `date "+/tmp/%Y/%m/"`

然后,您就可以安全地执行 echo 命令。

echo "test" > `date "+/tmp/%Y/%m/%d_%H%M.log"`

相关内容