一尘不染

查找和删除x天之前的文件或文件夹

linux

我想删除7天以上的文件和文件夹,所以我尝试了

[17:07:14 root@client01.abc.com:~]# find /tmp/ -mindepth 1 -maxdepth 1 -ctime +7 -exec ls -l {} \;

因此,当我运行find /tmp/ -mindepth 1 -maxdepth 1 -ctime +7 -exec ls -l {} \;它时,它不会显示任何目录,但find /tmp/ -mindepth 1 -maxdepth 2 -ctime +7 -exec ls -l {} \;在子目录中却显示了几个文件。

在一个特定目录中删除7天以上的文件/文件夹的正确方法是什么?


阅读 428

收藏
2020-06-03

共1个答案

一尘不染

您可以利用这段代码

find /tmp/* -mtime +7 -exec rm {} \;

说明

第一个参数是文件的路径。如上例所示,它可以是路径,目录或通配符。我建议使用完整路径,并确保在不执行exec的情况下运行命令,以确保获得正确的结果。

第二个参数-mtime用于指定文件存在的天数。如果输入+7,它将查找7天以上的文件。

第三个参数-exec允许您传递诸如rm之类的命令。{} \; 最后需要结束命令。

来源:http : //www.howtogeek.com/howto/ubuntu/delete-files-older-than-x-
days-on-linux/

对于删除的文件夹,里面清空他们后,你可以rmdirinstad的rm在一段代码,如果你还只是想看看你可以添加目录

type -d

到如下代码:

find /tmp/*/* -mtime +7 -type d -exec rmdir {} \;
2020-06-03