Я пытаюсь переименовать группу файлов и папок .
Я попробовал эту команду 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
Вы хотите
find . -type f -exec rename -n 's/test/test2/' {} +
-exec ... +
форма поместит столько аргументов, сколько может соответствовать, таким образом, она вызовет rename
как несколько раз как возможный.
Ваша ошибка использовала find ... -exec
и также помещение **
в списке аргументов переимени.
Это звучит мне как Вы, имеют файл с чрезвычайно длинным именем файла.
Для нахождения лучших 5 самых долгих имен файлов в данном каталоге используйте следующее (замена /etc
с рассматриваемым путем)
ls /etc | perl -e 'print sort { length($b) <=> length($a) } <>' | head -5
Если у Вас действительно есть имя файла, которое нелепо долго, Вы можете сначала переименовывать его с помощью команды 'mv' для более короткого имени.