我正在为客户开发网站,我刚刚看到一个包含超过 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
如果要删除文件的子集,可以使用模式匹配