使用 find 的脚本在我执行时运行良好,但无法从 cron 正确运行

1 scripts cron find

谁能告诉我这个脚本有什么问题?

它在 中不起作用cron,但在我正常执行时工作正常。

警告:此命令很危险,可能会删除大量文件

#!/bin/bash

/bin/find  .  -maxdepth 1 -type d  -ctime +2 -exec /bin/rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)

pLu*_*umo 8

所以让我们看看你在这里做什么:

/bin/find  .  -maxdepth 1 -type d  -ctime +2 -exec /bin/rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)

当前目录( .) 中找到超过 2 天前创建的所有文件夹并对其执行rm -rf

cronjob 的当前工作目录是用户主目录,对于root/ sudocronjobs 是/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 {} \;
Run Code Online (Sandbox Code Playgroud)

以任何方式

  • 使用时要非常小心rm -rf,除非您 100% 确定,否则不要使用它。
  • 准备好备份。