查找和删除超过x天的文件或文件夹

时间:2015-07-13 17:13:19

标签: linux shell automation

我想要删除超过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天的文件/文件夹的正确方法是什么?

4 个答案:

答案 0 :(得分:20)

您可以使用这段代码

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

<强>解释

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

第二个参数-mtime用于指定文件的旧天数。如果输入+7,它将找到超过7天的文件。

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

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

对于删除文件夹,在清空文件夹之后,您可以在代码段中rmdir rm的instad,如果您只想查看可以添加的目录

type -d 

代码如下:

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

答案 1 :(得分:7)

更容易做到

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

del文件和目录

答案 2 :(得分:2)

我的简单方法:

find /tmp/* -daystart -mtime +7 -delete

daystart选项衡量从今天开始而不是从24小时开始的时间

参考:official_doc

答案 3 :(得分:1)

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

删除文件。

find /tmp/ -empty -type d -delete

删除空目录。