/ 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

2
задан 21 July 2019 в 19:52

2 ответа

Вы хотите

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

-exec ... + форма поместит столько аргументов, сколько может соответствовать, таким образом, она вызовет rename как несколько раз как возможный.

Ваша ошибка использовала find ... -exec и также помещение ** в списке аргументов переимени.

1
ответ дан 2 December 2019 в 04:36

Это звучит мне как Вы, имеют файл с чрезвычайно длинным именем файла.

Для нахождения лучших 5 самых долгих имен файлов в данном каталоге используйте следующее (замена /etc с рассматриваемым путем)

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

Если у Вас действительно есть имя файла, которое нелепо долго, Вы можете сначала переименовывать его с помощью команды 'mv' для более короткого имени.

0
ответ дан 2 December 2019 в 04:36

Другие вопросы по тегам:

Похожие вопросы: