![如何删除最近未访问的文件?](https://linux22.com/image/1057765/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E6%9C%80%E8%BF%91%E6%9C%AA%E8%AE%BF%E9%97%AE%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
如何在 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 n
n 是要逐步下降的目录数。
答案2
这听起来像是一份工作find
例子:
find -atime +1
这将返回当前目录中(递归)已访问超过 1 天的所有文件
man find
有关可能查找的参数的更多信息,请参阅。