roy*_*roy 11 linux shell automation
我想删除超过7天的文件和文件夹,所以我尝试了
[17:07:14 root@client01.abc.com:~]# find /tmp/ -mindepth 1 -maxdepth 1 -ctime +7 -exec ls -l {} \;
Run Code Online (Sandbox Code Playgroud)
因此,当我运行find /tmp/ -mindepth 1 -maxdepth 1 -ctime +7 -exec ls -l {} \;它不显示任何目录,但因为find /tmp/ -mindepth 1 -maxdepth 2 -ctime +7 -exec ls -l {} \;它确实显示在subdir中的几个文件.
什么是在一个特定目录中删除超过7天的文件/文件夹的正确方法?
Tol*_*rol 24
您可以使用这段代码
find /tmp/* -mtime +7 -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
说明
第一个参数是文件的路径.这可以是路径,目录或通配符,如上例所示.我建议使用完整路径,并确保在没有exec rm的情况下运行命令以确保获得正确的结果.
第二个参数-mtime用于指定文件的旧天数.如果输入+7,它将找到超过7天的文件.
第三个参数-exec允许您传入诸如rm之类的命令.{} \; 最后需要结束命令.
资料来源:http://www.howtogeek.com/howto/ubuntu/delete-files-older-than-x-days-on-linux/
对于删除文件夹,它们的内部排空后,你可以rmdirinstad的rm在一段代码,如果你还只是想看看你可以添加目录
type -d
Run Code Online (Sandbox Code Playgroud)
到下面的代码片段:
find /tmp/*/* -mtime +7 -type d -exec rmdir {} \;
Run Code Online (Sandbox Code Playgroud)
小智 7
更容易做到
find /tmp/* -mtime +7 -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)
哪个将del文件和目录
我的简单方法:
find /tmp/* -daystart -mtime +7 -delete
Run Code Online (Sandbox Code Playgroud)
该daystart选项从今天开始而不是从 24 小时前开始测量时间
参考:official_doc
find /tmp/* -mtime +7 -type f -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)
删除文件。
find /tmp/ -empty -type d -delete
Run Code Online (Sandbox Code Playgroud)
删除空目录。
| 归档时间: |
|
| 查看次数: |
42435 次 |
| 最近记录: |