Как я могу изменить все префиксы файлов в одной команде?

Я должен изменить постфиксы всех файлов (весь одинаковый.JPEG) к .jpeg (Капитал по сравнению с нижним регистром).
Существует ли быстрый способ сделать так?

7
задан 11 June 2011 в 13:49

7 ответов

Используйте программу Perl rename который установлен по умолчанию:

rename 's/\.JPEG$/.jpeg/' *.JPEG

Первым аргументом является регулярное выражение Perl, соответствующее именам файлов, заканчивающимся .JPEG и замены это с .jpeg.

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

rename 's/\.JPEG$/.jpeg/' ~/Pictures/*.JPEG

Другие ответы я видел:

  • rename s/.JPEG$/.jpeg/ * - это также переименует файлы как StupidJPEG кому: Stupi.jpeg потому что точка является соответствиями любой символ. .JPEG$ регулярное выражение
  • rename 's/\.JPEG$/\.jpeg/' * - работы, но это менее эффективно, потому что это передает все файлы в текущем каталоге к rename.
  • rename -n 's/.JPEG$/.jpeg/' *.JPEG - -n опция показала бы переименовываемые файлы, на самом деле не переименовывая их ("пробный прогон"). Поскольку *.JPEG файлы соответствий, снабженные постфиксом .JPEG только, проблема dot-matches-all не существует здесь.
14
ответ дан 23 November 2019 в 06:10

Хотя это - возможно не лучшее решение для этого конкретного случая использования,

for i in *.JPEG; do mv "$i" "$(basename "$i" .JPEG).jpeg"; done

также работы. Мы можем сделать некоторую коварность с ударом для небольшого увеличения эффективности (избегающий в вызове дополнительного подпроцесса во внутреннем цикле), закончив с:

for i in *.JPEG; do mv "$i" "${i%%.JPEG}.jpeg"; done

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

3
ответ дан 23 November 2019 в 06:10

Существует инструмент для этого:

sudo apt-get install renameutils или нажмите renameutils

(если не уже установленный)

где можно сделать (из командной строки):

rename s/\.JPEG$/\.jpeg/ *.JPEG

3
ответ дан 23 November 2019 в 06:10

Найденный им спустя секунду после регистрации:

rename 's/\.JPEG$/.jpeg/' *
2
ответ дан 23 November 2019 в 06:10

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

Что-то вроде этого управляет, должен работать (для всех файлов, которые заканчиваются в.JPEG, изменяют.JPEG на .jpeg),

переименуйте-n 's/.JPEG$/.jpeg /' *.JPEG

1
ответ дан 23 November 2019 в 06:10

Если Вы ищете хорошее решение GUI и не хотите слоняться без дела со сложными параметрами командной строки, существует большой сценарий Наутилуса, доступный для переименования файлов. Это имеет простой интерфейс и много опций.

Доступный здесь: http://gnome-look.org/content/show.php/Renamer?content=87601

0
ответ дан 23 November 2019 в 06:10

Выполнение вещей параллельно становится все более важным, следовательно я рекомендую:

parallel mv {} {.}.jpg ::: *.JPG

Эта утилита не установлена по умолчанию все же.

1
ответ дан 23 November 2019 в 06:10

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

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