Linux下如何一条命令删除上万个文件?

Linux下如何一条命令删除上万个文件?,第1张

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 " 这种文件名,多的不说了,不知你能否看明白。

(拷贝了/var/log/* 到当前目录做测试,当前目录是新建的空目录)

查找并删除当前目录空文件

find . -size 0k

find . -size 0k -exec rm {} \

查找并删除 小于500K的文件 小于是- 大于是+

find . -size -500k

find . -size -500k -exec rm {} \

从根目录开始,查找文件名包含mess 以bak结尾的文件并删除,

(拷贝了几份/var/log/messages并改名测试)

find / -name *mess*bak

find / -name *mess*bak -exec rm {} \

!!做进一步 *** 作前,记得先find 一下,确认想要做进一步动作的文件在这里面,不包含不想做变更的文件。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8393224.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存