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

新手上路,请多包涵

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

原文由 roy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

您可以使用这段代码

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 of rm 如果您只想查看可以添加的目录

-type d

到如下代码:

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

原文由 Tolga Varol 发布,翻译遵循 CC BY-SA 4.0 许可协议

更容易做

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

哪个将删除文件和目录

原文由 user6406452 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题