从文件夹中删除很多很多文件

从文件夹中删除很多很多文件

我有一个文件夹,里面有 137795 个文件。我需要将它们全部删除。当我跑步时,rm *我得到了-bash: /bin/rm: Argument list too long。我该如何克服这个错误?

答案1

正如我所看到的,您不需要删除 dir ,只需删除里面的文件。所以你可以重新创建它

rm -r /path/to/dir && mkdir /path/to/dir

甚至只删除里面的文件

find /path/to/dir -type f -delete

公平的第一个工作得更快。

UPD。请注意,从空间消耗的角度来看, with 的方式find可能不是最佳的,因为目录大小只有在fsck.细节

答案2

解决方法#1:

find /path/to/dir -delete

解决方法#2:

rm a*;

rm b*;

rm c*;

etc

答案3

使用find可能是最好的选择。其他答案的一些问题要么不删除目录内的所有内容,要么删除目录本身。如果没有特殊字符,您可以ls与 一起使用,或者与某些选项一起使用。xargsfind

ls -1 | xargs rm -r

或者

find . -depth -path ./.* -prune -o -not -name . -delete

这将忽略当前目录中以.( -prune) 开头的任何内容,并将删除任何其他文件或目录,只要它不是顶级目录 ( .)。将-depth首先查看目录内部,这将避免“目录不为空”错误。如果该-not参数在您的系统上不可用,则使用!

相关内容