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

标签 unix

有人对此有好的 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/

相关文章:

c - 如何在 Unix (HPUX) 上验证密码

java - 错误 : Could not find or load main class Main (unix)

regex - 带有正则表达式支持的 GNU grep。

unix - 进程重新父子关系 : controlling who is the new parent

linux - Korn外壳用于循环

c++ - 调试问题:(

unix - 使用SSH设置环境变量

linux - 递归比较目录中某些类型的文件

linux - uniq 命令未检测到重复行

unix - 不包含压缩目录本身的 Zip 命令