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

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

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

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

введите описание изображения здесь

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

В Ubuntu 18.04 и более поздних версиях pyRenamer был заменен на GPRename.

Использование 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 "$0" "${0%.*}.zip"' {} \;
  • source/dir указывает путь к исходному каталогу.
  • -type f ищет только файлы.
  • -name '*.zip*' найдите те типы файлов, имена которых похожи на '*.zip*'
  • {} представлять текущий файл.
  • Полный из "${0%.*}.zip", расширение файла полосы и добавить .zip к имени файла.
  • Так mv "$0" "${0%.*}.zip" переименовывает текущий файл в *.zip,

Примечание: удалить echo Команда после того, как вы убедитесь, что на пробежке.

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