我正在尝试使用以下命令删除位于linux下单个目录中的大约10亿个文件:
# rm /test/*.mp3
但执行是错误的:
-bash: /bin/rm: Argument list too long
我该如何解决这个问题?
答案 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 {} \;
”