如何从linux上的单个目录中删除十亿个文件?

时间:2012-09-19 03:22:01

标签: linux filesystems debian

我正在尝试使用以下命令删除位于linux下单个目录中的大约10亿个文件:

# rm /test/*.mp3

但执行是错误的:

-bash: /bin/rm: Argument list too long

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

我经常使用

形式的东西
find /test/ -name '*.mp3' -delete

这允许依次处理每个文件,而不是试图将所有文件列为rm命令的参数的glob。

答案 1 :(得分:1)

xargs通常很聪明地生成合理大小的参数列表;试试

ls -1 /test/*.mp3 | xargs rm

这会将参数一起批处理,但避免创建太长而无法处理的命令调用。

答案 2 :(得分:1)

试试这个(我在iPad上但是经常使用Linux)

从/,执行

# rm -rf test

答案 3 :(得分:1)

另一个流行收藏夹是“find temp -name "*.mp3" -exec rm {} \;