![Linux,如何删除包含超过 100 万个文件的文件夹?](https://linux22.com/image/1350992/Linux%EF%BC%8C%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%E5%8C%85%E5%90%AB%E8%B6%85%E8%BF%87%20100%20%E4%B8%87%E4%B8%AA%E6%96%87%E4%BB%B6%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
我正在为客户开发网站,我刚刚看到一个包含超过 100 万个缓存文件的文件夹。
我需要删除他,但我不能,我收到此消息:参数列表太长
我开始删除所有以 aaa*、bbb*、ccc* 开头的文件...但我不想浪费我的一生...(rm -f aaa*.string.php)
我该怎么做?谢谢!
答案1
find
和xargs
你们一如既往的朋友:
find -type f -print0 | xargs -0 rm
或者,对于删除的特殊情况(感谢Eddy_Em):
find -type f -delete
答案2
您不需要删除单个文件,而是可以删除文件夹本身然后重新创建它:
cd folder/..
rm -rf folder
mkdir folder
如果这在您的场景中有效,那么这可能比任何基于明确枚举和删除单个文件的方法都要快得多。
答案3
尝试
ls | xargs -n 200 rm -f
最终将删除一切
grep
如果要删除文件的子集,可以使用模式匹配