Измените дублированное расширение нескольких файлов рекурсивно из командной строки

Моим вопросом является почти то же, поскольку они, однако, его решение не работают мой на мой случай. Я хотел бы удалить дублированное расширение (в моем случае .zip.zip) и имейте только один (т.е. .zip). Я попробовал:

rename 's/.zip/.zip$/.zip/' *.zip.zip

и

find . -depth -name "*.zip.zip" -exec rename 's/\.zip\.zip$/.zip/' {} +

Но в обоих случаях не был переименован никакой файл.

0
задан 18 April 2020 в 14:09

2 ответа

Рекурсивно переименование файлов с помощью globstar и переименовывает:

$ shopt -s globstar; rename 's/\.zip$//' **/*.zip.zip

Переименование файлов с помощью mmv:

$ mmv ';*.zip.zip' '#1#2.zip'
       12            ^ ^
  • ; файлы соответствий на любой глубине в дереве каталогов.
  • * Соответствия любой символьный нуль или больше раз.
  • # Ссылки на энный подстановочный символ в от шаблона.
0
ответ дан 25 April 2020 в 10:45

Следующее добилось цели.

find . -depth -name "*.zip.zip" -exec sh -c 'mv "$1" "${1%.zip.zip}.zip"' _ {} \;

0
ответ дан 25 April 2020 в 10:45

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

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