将输出redirect到尚不存在的子文件夹

我目前redirectcrontab脚本输出到文件存在的一些文件夹中,如下所示:

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

我想redirect输出到子文件夹,也许还不存在( .../year/month/... ,所以应该创build子文件夹:

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

我怎样才能做到这一点?

只需创build目录。 mkdir的-p标志实现了两件事情:

  • 创build整个path
  • 如果指导已经存在,不要抱怨

所以:

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

下次在unix.stackexchange上提问这样的问题,这里有点偏离主题。

您需要使用mkdir -p命令创build文件夹,如下所示:

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

然后,你可以安全地执行你的echo命令。

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