谁能告诉我这个脚本有什么问题?
它无法工作cron
,但是当我正常执行它时可以正常工作。
警告:此命令很危险,可能会删除大量文件
#!/bin/bash
/bin/find . -maxdepth 1 -type d -ctime +2 -exec /bin/rm -rf {} \;
答案1
让我们看看你在这里做什么:
/bin/find . -maxdepth 1 -type d -ctime +2 -exec /bin/rm -rf {} \;
查找所有文件夹当前目录(.
)已创建超过 2 天并rm -rf
在其上执行。
cronjob 的当前工作目录是用户主目录,对于root
/ sudo
cronjobs 来说它是/root
。
如果您真的很幸运,您使用了sudo crontab
,并且它没有任何危害,因为/root
目录通常不在 Ubuntu 中使用。
如果没有,你基本上删除了家里超过 2 天的所有目录。这应该或多或少是一些重要的东西。Desktop
,,,Pictures
...Documents
.config
你应该做的是:
使用完整路径:
/bin/find /path/to/my/folder -maxdepth 1 -type d -ctime +2 -exec /bin/rm -rf {} \;
以任何方式
- 是非常小心谨慎
rm -rf
,除非您 100% 确定,否则不要使用它。 - 准备好备份。
答案2
该脚本取决于当前工作目录(.
),手动运行和 cron 执行时可能有所不同。
请使用您想要在那里处理的文件夹的绝对路径。