小编典典

rm、cp、mv 命令的参数列表太长错误

all

我在 UNIX 的一个目录下有数百个 PDF。PDF 的名称非常长(大约 60 个字符)。

当我尝试使用以下命令一起删除所有 PDF 时:

rm -f *.pdf

我收到以下错误:

/bin/rm: cannot execute [Argument list too long]

这个错误的解决方案是什么?mv和命令是否也会发生此错误cp?如果是,如何解决这些命令?


阅读 107

收藏
2022-03-02

共1个答案

小编典典

发生这种情况的原因是因为 bash 实际上将星号扩展到每个匹配的文件,从而产生了很长的命令行。

尝试这个:

find . -name "*.pdf" -print0 | xargs -0 rm

警告: 这是一个递归搜索,也会在子目录中查找(并删除)文件。-f仅当您确定不想确认时才使用 rm 命令。

您可以执行以下操作以使命令非递归:

find . -maxdepth 1 -name "*.pdf" -print0 | xargs -0 rm

另一种选择是使用 find 的-delete标志:

find . -name "*.pdf" -delete
2022-03-02