有人对此有好的 shell 行吗?
我想检查一个目录的年龄。例如,如果我每周创建多个目录,并且我想在 7 天后清除/删除它们。
我该怎么做?
最佳答案
这将让您进行试运行,如果您喜欢输出,请移除 echo
find /path/to/toplevel -type d -mtime +7 -exec echo rm -rf {} +
更新
如果您有不符合 POSIX 2004 的旧版 find
,请改用它:
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
的单个调用尽可能少的次数,从而更快。后者也与第一个以 +
关于unix - 如何在 unix/shell 中以编程方式清除旧目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200329/