一尘不染

rm,cp,mv命令的参数列表过长错误

linux

我在UNIX的目录下有数百个PDF。PDF的名称确实很长(约60个字符)。

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

rm -f *.pdf

我收到以下错误:

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

该错误的解决方法是什么?mvcp命令也会发生此错误吗?如果是,该如何解决这些命令?


阅读 574

收藏
2020-06-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
2020-06-02