find 后面紧跟的 /root/logs 是要查找的目录,. 表示当前目录
-type f :指定查找对象为文件
-name "*" :指定查找对象名称为任意
-mtime +7 :查找7天以前的老文件
-exec rm -f {} \:执行删除命令,后面有个 {} \ 是必须的
find / -name *.log | xargs -n 1000 rm -f
因为rm 接收参数的数量是有限的, 所以每次传 1000个参数给他,这样可以满足你的需求。
补充一点,这种写法其实不是特别严谨,因为如果日志文件的命名有特殊字符的话,上面命令将会对特殊字符文件识别不了。
严谨的写法。
find / -name '*.log' -print0 |xargs -0 -n 1000 rm -f
这里前面的print0 和 后的-0 都是对特殊字符进行处理,也就是说他会认识如"aa bb cc " 这种文件名,多的不说了,不知你能否看明白。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)