我在UNIX的一个目录下有几百个PDF。PDF的名称非常长(约60个字符)。
当我尝试使用以下命令一起删除所有PDF时:
rm -f *.pdf
我收到以下错误:
/bin/rm: cannot execute [Argument list too long]
此错误的解决方案是什么?mv和cp命令是否也会出现此错误?如果是,如何解决这些命令?
我在UNIX的一个目录下有几百个PDF。PDF的名称非常长(约60个字符)。
当我尝试使用以下命令一起删除所有PDF时:
rm -f *.pdf
我收到以下错误:
/bin/rm: cannot execute [Argument list too long]
此错误的解决方案是什么?mv和cp命令是否也会出现此错误?如果是,如何解决这些命令?
当前回答
您可以使用bash数组:
files=(*.pdf)
for((I=0;I<${#files[@]};I+=1000)); do
rm -f "${files[@]:I:1000}"
done
这样,它将以每一步1000个文件的批量擦除。
其他回答
如果要同时删除文件和目录,可以使用以下命令:
echo /path/* | xargs rm -rf
你可以用这个表扬
find -name "*.pdf" -delete
我在将源目录复制到目标目录时遇到了同样的问题
源目录包含文件约3 lakcs
我使用cp和选项-r,这对我很有用
cp-r abc/def/
它会将所有文件从abc复制到def,而不会发出参数列表过长的警告
我用解决了
我在macOS上使用zsh
我只移动了数千个jpg文件。在一行命令中的mv内。
确保要移动的文件名中没有空格或特殊字符
for i in $(find ~/old -type f -name "*.jpg"); do mv $i ~/new; done
或者您可以尝试:
find . -name '*.pdf' -exec rm -f {} \;