unable to execute /bin/ls:Argument list too long 删除文件

1. 问题
当我尝试删除所有PDF文件,使用下面的命令时:

sudo rm -f *.pdf
1
我得到以下错误:

/bin/rm: cannot execute [Argument list too long]
1
发生这种情况的原因是因为扩展 “*” 号会连接每一个匹配的文件,产生一个很长的命令行。

2. 解决方法:
ls | xargs -n 10 rm -fr ls
这个命令的意思是:输出所有的文件名(用空格分割) xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm -rf的参数也就是说将所有文件名10个为一组,由rm -rf删除,这样就不会超过命令行的长度了.


find . -name “*.pdf” -print0 | xargs -0 rm

警告:这是一个递归搜索,并会找到(和删除)子目录中的文件。
如果你是在Linux上,你可以做以下,使命令非递归:

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

6,597 Comments

Tempobet进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注