我试图在debian11虚拟机上使用cron在系统重启时创建一个日期为今天的文件夹,如果它不存在,这是我使用的行。
@reboot /usr/bin/mkdir -p /home/bin/data/"$(date '+%Y%m%d')"
这是从终端工作的,在网上看了之后,我明白了这个问题是cron不像shell一样运行,我可以通过将这行打包到.sh文件中来解决这个问题。我对这个解决方案很满意,但为了简单和学习,我该如何重写这一行,使它能够成功地从cron运行?
逃脱百分号(%)在命令中使用反斜杠()性格:
@reboot /usr/bin/mkdir -p /home/bin/data/"$(date '+%Y%m%d')"
参考crontab(5):
"sixth"字段(该行的其余部分)指定要运行的命令。该行的整个命令部分,不超过换行符或%字符,将由/bin/sh或由在cronfile的shell变量中指定的shell执行。命令中的百分比符号(%),除非用反斜杠()转义,否则将被更改为换行字符,并且第一个%之后的所有数据将作为标准输入发送给命令。