shell 查找并删除x天前文件或文件夹

w6lpcovy  于 2022-11-16  发布在  Shell
关注(0)|答案(4)|浏览(413)

我想删除超过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天在一个特定的目录?

lstz6jyr

lstz6jyr1#

你可以利用这段代码

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 instad的rm在一段代码中,如果你只想看到目录,你可以添加

-type d

到如下代码段:

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

yyyllmsg2#

更容易做到

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

将删除文件和目录

nqwrtyyt

nqwrtyyt3#

我顺口道:

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

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

lsmd5eda

lsmd5eda4#

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

移除档案。

find /tmp/ -empty -type d -delete

删除空目录。

相关问题