如何删除最近未访问的文件?

如何删除最近未访问的文件?

如何在 Ubuntu 上查找最近未访问的文件?我想删除所有很长时间未访问的文件。如果我手动执行此操作,将耗费大量时间。有没有什么命令可以做到这一点?

答案1

“find”命令有一个名为“-atime”的选项,正是用于此用途。如果您想要递归查找目录下 30 天内未访问的所有文件,请使用:

find /directory/path/ -type f -atime +29

我认为在删除之前,总是使用第一个命令来列出您正在操作的文件。如果要删除它们,请使用:

find /directory/path/ -type f -atime +29 -delete

正如所提到的阿米亚斯在注释中,并非所有文件系统都使用 atime。您还可以使用 按照修改时间(对文件内容的修改)-mtime或更改时间(对文件权限/所有权等的更改)进行搜索ctime

值得注意的是,find的时间结构不同寻常,因为它以 24 小时为单位搜索天数,所以您可能认为是 3 天前的数据,但 find 可能认为只有 2 天前的数据。因此使用 +29 表示 30 天。用于+指定多于天数的数据,-可用于指定少于天数的数据。

如果您不想进行递归搜索,则可以限制它在目录树中的下降程度,其中-maxdepth nn 是要逐步下降的目录数。

答案2

这听起来像是一份工作find

例子:

find -atime +1

这将返回当前目录中(递归)已访问超过 1 天的所有文件

man find有关可能查找的参数的更多信息,请参阅。

相关内容