如果我想在unix中删除几天没有访问的文件该怎么办?

如果我想在unix中删除几天没有访问的文件该怎么办?

如果我想在 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

相关内容