Переименование нескольких расширений файлов с помощью одной команды

Я получил несколько важных файлов по почте. Таких файлов около 150. Расширения файлов называются zip1, zip2, zip3, zip_ и т. Д. Я просто хочу изменить расширение этих файлов обратно на zip с помощью одной команды, чтобы избежать ручного переименования каждого файла.

4
задан 25 March 2015 в 18:46

3 ответа

Попытка:

rename 's/zip[^.]*$/zip/' /path/to/directory/containing/the/files/*

Пример:

$ ls
bar.zip2  egg.zip4  foo.zip1  spam.zip3  test.zip_
$ rename 's/zip[^.]*$/zip/' *
$ ls
bar.zip  egg.zip  foo.zip  spam.zip  test.zip
3
ответ дан 25 March 2015 в 18:46

Это несколько переименовывают задачу, легко сделать использование pyRenamer из репозиториев Ubuntu по умолчанию в Ubuntu 16.04 и ранее. Следующий снимок экрана объясняет, как сделать это:

enter image description here

я знаю, что это не способ сделать это в терминале, как Вы запросили, но это - альтернативный способ сделать его, что можно найти легче, потому что можно просмотреть в файлы, которые будут переименованы в pyRenamer окне вместо того, чтобы ввести путь.

В Ubuntu 18.04 и позже pyRenamer был заменен GPRename.

3
ответ дан 25 March 2015 в 18:46

Использовать mmv команда (Устанавливают его sudo apt-get install mmv):

mmv -n '*.zip*' '#1.zip'

Сначала * соответствует всему, прежде чем .zip и второй * будет соответствовать всему после .zip, и они становятся как группа соответствий с обратной ссылкой #1 и #2 соответственно. И мы только сохраняем первый с .zip в конце.

Примечание: С использованием -n опция, mmv управляйте выполнениями как сухими, поэтому удалите его для выполнения фактического переименования.


Или через комбинацию find и mv команды:

find source/dir -type f -name '*.zip*' -exec sh -c 'echo mv "$1" "${1%.*}.zip"' sh_mv {} \;
  • source/dir указывает путь исходного каталога.
  • -type f файлы поисков только.
  • -name '*.zip*' найдите подобные файлы, что их имена похожи на '*.zip*'
  • {} представьте текущий файл.
  • Завершитесь "${1%.*}.zip", расширение файла дорожек и добавляет .zip к имени файла.
  • Так mv "$1" "${1%.*}.zip" переименовывает текущий файл к *.zip.

Примечание: Удалить echo команда после обеспечения о пробном прогоне.

2
ответ дан 25 March 2015 в 18:46

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

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