如果我想在 Unix 中删除几天未访问的文件/文件夹,该怎么办?假设在特定位置有一些文件上次访问是在 5 天前。我想删除它们。执行此操作的 shell 命令是什么?
答案1
这查找命令就是您所需要的,它具有 -atime 和可能的 -daystart 选项。
从这里开始,确保它能找到你需要的东西(而不是你不需要的东西!):
find directory -atime +5 -daystart -ls
然后,一旦你满意了,就让它做真正的工作:
find directory -atime +5 -daystart -exec rm {} \;
答案2
虽然find
可移植且可在多种操作系统上运行,但-daystart -ls
并非 POSIX。如果您知道自己正在使用 GNU findutils,不妨改用-delete
并跳过 shelling to rm
。
或者考虑安装和使用tmpwatch
。您可以提供访问时间、修改时间或 inode 更改时间中的任意一个或全部,如果提供了多个,则将评估较旧的时间。此外,还有安全检查,因此它不会逃离给定的树。
文件列表试运行。
tmpwatch --verbose --test --atime 5d /tmp
实际移除。
tmpwatch --verbose --atime 5d /tmp