Я получил несколько важных файлов по почте. Таких файлов около 150. Расширения файлов называются zip1, zip2, zip3, zip_ и т. Д. Я просто хочу изменить расширение этих файлов обратно на zip с помощью одной команды, чтобы избежать ручного переименования каждого файла.
Попытка:
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 "$1" "${1%.*}.zip"' sh_mv {} \;
source/dir
указывает путь исходного каталога.-type f
файлы поисков только.-name '*.zip*'
найдите подобные файлы, что их имена похожи на '*.zip*'{}
представьте текущий файл."${1%.*}.zip"
, расширение файла дорожек и добавляет .zip
к имени файла.mv "$1" "${1%.*}.zip"
переименовывает текущий файл к *.zip
.Примечание: Удалить echo
команда после обеспечения о пробном прогоне.