我已经安装了 cron,它如下
1 0 * * * rm -R /path/to/my/folder/$(date +'%Y-%m-%d' -d "昨天")
我想删除每天以“昨天名称”命名的文件夹,例如“2014-12-14”
当我执行“grep CRON”命令时,这是我的 ubuntu /var/log/syslog
12 月 16 日 00:01:01 {SERVERNAME} CRON[21031]: (root) CMD (rm -R /path/to/my/folder/$(date +') 12 月 16 日 00:01:01 {SERVERNAME} CRON[21030]: (CRON) 信息 (未安装 MTA,丢弃输出)
答案1
联机帮助页 ( man 5 crontab
) 中写道:
该行的整个命令部分(直到换行符或 % 字符)将由 /bin/sh 或 crontab 文件的 SHELL 变量中指定的 shell 执行。除非使用反斜杠 () 进行转义,否则命令中的百分号 (%) 将更改为换行符,并且第一个 % 之后的所有数据将作为标准输入发送到命令。
因此,您必须将%
日期格式中的每个替换为\%
:
1 0 * * * rm -R /path/to/my/folder/$(date +'\%Y-\%m-\%d' -d "yesterday")
答案2
您可以使用此命令
find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +
IE
1 0 * * * find /path/to/dir -maxdepth 0 -ctime +1 -exec rm -fr {} +