我正在尝试重命名一堆文件和文件夹。
我尝试了这个命令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”命令将其重命名为一个较短的名称。