我在UNIX的目录下有几百个PDF.PDF的名称非常长(约60个字符).
当我try 使用以下命令同时删除所有PDF时:
rm -f *.pdf
我得到以下错误:
/bin/rm: cannot execute [Argument list too long]
这个错误的解决方案是什么?
我在UNIX的目录下有几百个PDF.PDF的名称非常长(约60个字符).
当我try 使用以下命令同时删除所有PDF时:
rm -f *.pdf
我得到以下错误:
/bin/rm: cannot execute [Argument list too long]
这个错误的解决方案是什么?
出现这种情况的原因是bash实际上会将星号扩展到每个匹配的文件,从而生成一个非常长的命令行.
试试这个:
find . -name "*.pdf" -print0 | xargs -0 rm
Warning:这是一个递归搜索,也会在子目录中查找(和删除)文件.只有在确定不需要确认的情况下,才能在rm命令上添加-f
.
可以执行以下操作以使命令非递归:
find . -maxdepth 1 -name "*.pdf" -print0 | xargs -0 rm
另一个选项是使用find的-delete
标志:
find . -name "*.pdf" -delete