如何在unix / shell中以编程方式清除旧目录?

时间:2011-03-04 23:15:34

标签: unix

有没有人有这个好的shell系列?

我想查看目录上的年龄。如果我每周创建多个目录,并且我想在7天后清除它们/删除它们。例如。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

如果您喜欢输出

,这将让您进行干运行,删除echo
find /path/to/toplevel -type d -mtime +7 -exec echo rm -rf {} +

更新

如果您的find旧版本不符合POSIX 2004,请改用:

find /path/to/toplevel -type d -mtime +7 -exec echo rm -rf {} \;

find /path/to/toplevel -type d -mtime +7 -print0 | xargs -0 echo rm -rf {}

\;终止的前者会为找到的每个目录调用rm,后者xargs会尝试通过多次调用rm来尽可能少地调用rm单个调用+的目录,因此速度更快。后者也与以{{1}}

终止的第一个行为相同