Linux,如何删除包含超过 100 万个文件的文件夹?

Linux,如何删除包含超过 100 万个文件的文件夹?

我正在为客户开发网站,我刚刚看到一个包含超过 100 万个缓存文件的文件夹。

我需要删除他,但我不能,我收到此消息:参数列表太长

我开始删除所有以 aaa*、bbb*、ccc* 开头的文件...但我不想浪费我的一生...(rm -f aaa*.string.php)

我该怎么做?谢谢!

答案1

findxargs你们一如既往的朋友:

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如果要删除文件的子集,可以使用模式匹配

相关内容