1

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

# rm /test/*.mp3

但是这条消息的执行是错误的:

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

我怎么解决这个问题?

4

4 回答 4

4

我经常使用某种形式的东西

find /test/ -name '*.mp3' -delete

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

于 2012-09-19T03:27:43.420 回答
1

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

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

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

于 2012-09-19T03:29:47.263 回答
1

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

从 /,执行

# rm -rf test
于 2012-09-19T03:31:48.697 回答
1

另一个流行的最爱是“ find temp -name "*.mp3" -exec rm {} \;

于 2012-09-19T03:38:50.957 回答