/usr/bin/rename:参数列表太长

/usr/bin/rename:参数列表太长

我正在尝试重命名一堆文件文件夹

我尝试了这个命令rename 's/test/test2/',但是我得到了unable to execute /usr/bin/rename: Argument list too long

我搜索了很多次并尝试了不同的解决方案,但没有得到想要的结果。

我尝试的最后一个是这个find . -type f -exec rename -n 's/test/test2/' ** {} \;,我也遇到了同样的错误。

谢谢你!

编辑:也尝试过xargs -0 rename -n 's/test/test2/' **,我得到了xargs: cannot fit single argument within argument list size limit

答案1

你要

find . -type f -exec rename -n 's/test/test2/' {} +

表单-exec ... +将输入尽可能多的参数尽可能适合,因此它将调用rename尽可能少的次数。

你的错误是使用find ... -exec放入**重命名的参数列表。

答案2

在我看来,您有一个文件名非常长的文件。

要查找给定目录中前 5 个最长的文件名,请使用以下命令(替换/etc为相关路径)

ls /etc | perl -e 'print sort { length($b) <=> length($a) } <>' | head -5

如果您的文件名确实太长,您可以先使用“mv”命令将其重命名为一个较短的名称。

相关内容