18

我确信这是直截了当的,并在某个地方得到了回答,但我没有找到我想要的东西。基本上,我正在尝试运行一个 cron 脚本以每 7 天清除给定目录的内容。到目前为止,我已经尝试了以下方法,

find /myDir -mtime 7 -exec rm -rf {} \;

然而,这也删除了我不想要的父目录 myDir。我也试过,

find /myDir -type f -type d -mtime 7 -delete

这似乎什么也没做。我也试过,

fnd /myDir -type d -delete

它根据我的需要删除了除父目录之外的所有目录。但是,出现了一条警告消息,

相对路径可能不安全

如果有人可以纠正我的脚本,以便它安全地删除文件夹中的所有子目录,我将不胜感激。

非常感谢。=)

更新: 我决定去做以下事情,

find /myDir -mindepth 1 -mtime 7 -delete

根据我从所有回答的人那里学到的东西。再次,非常感谢大家。

4

3 回答 3

14

尝试:

find /myDir -mindepth 1 -mtime 7 -exec rm -rf {} \;
于 2011-05-05T10:34:25.663 回答
7

关于什么

cd myDir/ ; find . -type d -delete

假设您从myDir父目录运行它。

如果你不能保证 myDir 存在,那么这更安全:

cd myDir/ && find . -type d -delete
于 2011-05-05T10:37:45.947 回答
6

find /myDir -mindepth 1 -mtime 7 -delete

应该是

find /myDir -mindepth 1 -mtime +7 -delete

(或者也许mtime +6)。这+意味着 7 天或更早的东西,而不是正好 7 天。

于 2013-01-17T18:35:43.000 回答