查找并删除早于 x 天的文件或文件夹

find and delete file or folder older than x days

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

你可以利用这段代码

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/

对于删除文件夹,清空文件夹内部后,您可以 rmdirinstad of rm 在这段代码中,如果您只想查看目录,您可以添加

-type d

如下代码:

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

更简单

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

哪个会删除文件和目录

我的简单方法:

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

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

参考:official_doc

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

删除文件。

find /tmp/ -empty -type d -delete

删除空目录。