Linux переименовывает файлы по шаблону

Обновлено: 07.07.2024

У меня был набор файлов с общей схемой именования, и я хотел заменить слово, общее для всех имен файлов, другим словом. Утилиты оболочки в стиле Unix упрощают выполнение такой операции пакетного переименования путем поиска и замены шаблонов в именах файлов. Пользователи Windows могут получить доступ к этим мощным программам, установив Cygwin. В этом кратком руководстве я объясню, как можно выполнить пакетное переименование всех файлов в текущем каталоге, заменив определенное общее слово в именах файлов другим словом. Я тестировал это только в Windows с Cygwin, но это должно быть очень похоже на Linux или Unix.

Если вы хотите просто заменить расширение имени файла, см. мое руководство по пакетному переименованию расширений файлов.

Постановка задачи

У меня было несколько снимков с моей цифровой камеры, названных так:

Я хотел сделать пакетное переименование, чтобы заменить «IMG_» на «Fireworks»:

Метод

Чтобы выполнить пакетное переименование, основная команда выглядит следующим образом:

Эта команда работает следующим образом:

Для каждого имени файла создается и выводится команда вида mv «filename» «newfilename» , где имя файла и новое имя файла заключены в двойные кавычки (для учета пробелов в имени файла), а новый файл В имени все экземпляры foo заменены на bar . Функция подстановки $ имеет две косые черты ( // ), чтобы заменить каждое вхождение foo на bar .

Наконец, весь вывод сохраняется в файле rename.txt для просмотра пользователем, чтобы убедиться, что команды переименования создаются правильно.

Если вы уверены, что команда ничего не испортила, вы можете напрямую передать ее прямо в /bin/bash :

Или вы можете заставить Bash выполнить команду mv напрямую (обратите внимание, что двойные кавычки больше не экранируются символом \ ):

Я не рекомендую использовать любой из этих вариантов прямого выполнения без предварительной проверки вывода.

Если файлы, соответствующие *foo*, не найдены, цикл все равно выполняется, но сгенерированная команда неверна. Поэтому всегда проверяйте вывод перед его использованием.

Пример

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

Далее я могу изменить команду пакетного переименования для этого задания переименования:

Наконец, передав приведенный выше вывод в /bin/bash , команды могут быть выполнены, а файлы переименованы.

Альтернативные методы

Вот некоторые альтернативные методы, которые я использовал в прошлом, каждый из которых имеет несколько недостатков, которые необходимо учитывать. Я хочу задокументировать их здесь, потому что они поучительны.

Пакетное переименование с помощью awk и sed

Это была моя первая успешная попытка пакетного переименования:

Эта команда работает следующим образом:

ls -1 *foo* перечисляет все файлы в текущем каталоге с foo в имени файла. В каждой строке указано одно имя файла.

Вывод передается команде awk ''. Это создает новый вывод, где каждая строка имеет вид mv FILENAME FILENAME , где FILENAME является соответствующим именем файла.

Вывод команды awk передается в sed 's/foo/bar/2', который заменяет второй экземпляр foo в строке на bar. Второй экземпляр foo соответствует второму FILENAME в строках mv FILENAME FILENAME, сгенерированных командой awk. Это создает вывод в форме mv FILENAME NEWFILENAME , где новое имя файла является желаемым именем файла с заменой foo на bar .

Наконец, все выходные данные сохраняются в файле rename.txt для просмотра пользователем, чтобы убедиться, что команды переименования создаются правильно. Как и в случае основного метода пакетного переименования, вы можете направить вывод в /bin/bash, но это не рекомендуется.

У этого метода есть некоторые оговорки. Во-первых, так как он не работает с именами файлов с пробелами. Команда awk печатает первое поле $1 в каждой строке ввода, а пробелы в имени файла приводят к тому, что первое слово имени файла рассматривается как первое поле целиком.

Во-вторых, поскольку sed заменяет второй экземпляр foo в строке, он не обрабатывает случай, когда имя файла изначально содержит несколько экземпляров foo. Например, если у вас есть файл с именем «foofoo.jpg», соответствующая команда, сгенерированная приведенным выше кодом, будет выглядеть так:

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

Пакетное переименование с помощью вставки и sed

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

Команды in обрабатываются первыми.Это замена процесса в Bash, и вывод команды внутри отдается на вставку .

Первая подстановка процесса перечисляет все файлы с именами *foo*, а sed добавляет mv ” и добавляет в конец двойные кавычки. Это окружает имя файла двойными кавычками, чтобы позаботиться о пробелах.

Вторая подстановка процесса снова выводит список всех файлов с именем *foo*, а затем использует sed для заключения имени файла в двойные кавычки и замены «foo» на «bar» в имени файла.

Команда вставки объединяет выходные данные двух подстановок процесса построчно и использует пробел в качестве разделителя. Это создает список команд mv, которые можно сохранить в файл или передать в /bin/bash для выполнения.

Я не вижу слишком много недостатков в этом методе, но он кажется загадочным и, возможно, неэлегантным.

Хотите улучшить этот вопрос? Добавьте подробности и уточните проблему, отредактировав этот пост.

Закрыт 8 лет назад.

У меня есть много файлов в каталоге, которые называются следующим образом: ID_OTHER_STUFF.txt. Я хочу переименовать их все в ID.txt. Это не дубликат, потому что я не знаю, как указать этот шаблон.


Вы не можете переименовать их всех под одним и тем же именем в одном и том же каталоге — вам придется переместить их все в разные каталоги.

4 ответа 4

Используя преимя скрипта perl , которое символически связано с переименованием в дистрибутивах на основе Debian.

Удалите -n, ​​если вы уверены, что он делает то, что вам нужно.

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

Вы хотите использовать расширение параметров вашей оболочки для управления именем, например:

Посмотрите Parameter Expansion на справочной странице вашей оболочки, чтобы получить более подробную информацию об использовании $.

1_other_stuff.txt 2_other_stuff.txt 3_other_stuff.txt

Не работает, mv принимает только два аргумента, если последний из них является каталогом. Затем он помещает файлы в этот каталог. Использование mv требует одного запуска для каждого файла. Вы можете сделать это в цикле или использовать переименование, которое является стандартным инструментом для подобных вещей.

Вы хотите запустить их в цикле, мини-скрипт bash, есть несколько вариантов. в этом вопросе Пакетное переименование файлов.

Я ищу строку кода, которая превращает этот конкретный шаблон в другой указанный шаблон, спасибо.

все ответы в этом посте могут быть записаны в одну строку и содержать фундаментальные принципы, лежащие в основе двух других ответов, данных на ваш вопрос здесь.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с тегами bash rename или задайте свой вопрос.

Связано

Связанные

Горячие вопросы о сети

дизайн сайта / логотип © 2022 Stack Exchange Inc; вклады пользователей под лицензией cc by-sa. версия 2022.3.18.41718

Linux является зарегистрированным товарным знаком Линуса Торвальдса. UNIX является зарегистрированным товарным знаком The Open Group.
Этот сайт никоим образом не связан с Линусом Торвальдсом или The Open Group.

В этом руководстве мы узнаем, как переименовать несколько файлов одновременно в Linux с помощью различных инструментов. Все приведенные здесь примеры протестированы в Ubuntu, однако они должны работать в любых операционных системах Linux.

Введение

Как вы, возможно, уже знаете, мы используем команду mv для переименования или перемещения файлов и каталогов в Linux и Unix-подобных операционных системах.

Но команда mv не поддерживает одновременное пакетное переименование файлов. Он может переименовывать только один файл за раз. Что бы вы сделали, если бы захотели переименовать несколько файлов одновременно? Не беспокойтесь!

Есть несколько других утилит для пакетного переименования файлов в Linux.

Переименовать несколько файлов одновременно в Linux

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

Способ 1. Пакетное переименование файлов с помощью mmv

Утилита mmv используется для массового перемещения, копирования, добавления и переименования файлов с использованием стандартных подстановочных знаков в Linux и Unix-подобных операционных системах. Он доступен в стандартных репозиториях систем на базе Debian.

Чтобы установить mmv в ОС Debian, Ubuntu, Linux Mint и Pop, выполните следующую команду:

Допустим, в вашем текущем каталоге есть следующие файлы.

Теперь вы хотите переименовать все файлы, названия которых начинаются с буквы "a" на "b". Конечно, вы можете сделать это вручную за несколько секунд.

Но только подумайте, если у вас есть сотни файлов и вы хотите их переименовать? Это достаточно трудоемкий процесс. Здесь на помощь приходит команда mmv.

Чтобы переименовать все файлы, начинающиеся с буквы "а" на "б", просто запустите:

Проверим, были ли файлы переименованы или нет.

Как видите, все файлы, начинающиеся с буквы "a" (например, a1.txt, a2.txt, a3.txt), переименовываются в b1.txt, b2.txt, b3.txt.

Пояснение

Как и в приведенном выше примере, mmv будет искать любые имена файлов, начинающиеся с буквы «a», и переименовывать соответствующие файлы в соответствии со вторым параметром, т. е. шаблоном «to».

Мы используем подстановочные знаки, такие как «*», «?» и «[]», чтобы соответствовать одному или нескольким произвольным символам. Помните, что вы должны экранировать подстановочные знаки, иначе они будут расширены оболочкой, и mmv их не поймет.

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

Вот еще один пример. Допустим, у вас есть следующие файлы.

Вы хотите заменить первое вхождение abc на xyz во всех файлах в текущем каталоге. Как бы вы поступили?

Обратите внимание, что в приведенном выше примере шаблоны заключены в одинарные кавычки.

Проверим, действительно ли "abc" заменено на "xyz" или нет.

Видишь? Файлы abcd1.txt, abcd2.txt и abcd3.txt были переименованы в xyzd1.txt, xyzd2.txt и xyzd3.txt.

Еще одна примечательная особенность команды mmv заключается в том, что вы можете просто распечатать выходные данные, а не переименовывать файлы с помощью параметра -n, как показано ниже.

Таким образом, вы можете просто проверить, что на самом деле сделает команда mmv, прежде чем переименовывать файлы.

Подробнее см. справочные страницы.

Способ 2. Массовое переименование файлов с помощью утилиты переименования

Утилита rename переименует заданные файлы, заменив первое вхождение выражения в их имени заменой.

Команда rename предустановлена ​​в большинстве Unix-подобных операционных систем. Если он недоступен по умолчанию, выполните следующую команду, чтобы установить его в системах на базе Debian:

Например, у меня есть следующие файлы в текущем каталоге.

Давайте заменим первое вхождение abc на xyz везде, где оно встречается. Для этого запустите:

Теперь проверьте, были ли внесены изменения с помощью команды ls.

Иногда можно просто распечатать выходные данные, а не переименовывать файлы. Если это так, используйте флаг -n, чтобы показать, какие переименования будут выполняться без их выполнения:

Как видите, приведенная выше команда не вносит никаких изменений, а просто показывает, какие переименования должны произойти.

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

Если вы не хотите перезаписывать файлы, вы можете просто преобразовать их в верхний или нижний регистр (и наоборот), чтобы предотвратить появление ошибок "уже существует".

Чтобы преобразовать все имена файлов в нижний регистр, поэтому:

Проверим, были ли внесены изменения.

Да, буквы в именах файлов изменены со строчных на прописные.

Аналогично, чтобы преобразовать имена файлов в нижний регистр, запустите:

Мы также можем удалить все пустые строки в имени файла. Например, у меня есть следующий файл.

Чтобы удалить все пробелы в указанном выше имени файла, запустите:

Теперь в имени файла нет пробелов.

Замените пробелы символами подчеркивания:

Возможно, вы захотите изменить расширение файла, но не переименовывать его имена. Это также возможно. Следующая команда переименует все файлы *.txt в *.doc .

Проверьте изменения с помощью команды ls:

Чтобы удалить расширение во всех файлах, соответствующих .txt, запустите:

Подробнее см. справочные страницы.

Способ 3. Переименуйте файлы с помощью renameutils

renameutils – это набор программ, предназначенных для быстрого и простого пакетного переименования файлов и каталогов.

Renameutils состоит из следующих пяти программ:

  1. qmv (быстрый ход),
  2. qcp (быстрое копирование),
  3. imv (интерактивное перемещение),
  4. icp (интерактивная копия),
  5. deurlname (удалить URL-адрес).

Установка renameutils в Linux

Renameutils доступен в стандартных репозиториях большинства дистрибутивов Linux. Чтобы установить его в системах на основе Arch, включите репозиторий сообщества и выполните:

В системах на основе Debian:

Теперь давайте посмотрим на несколько примеров.

1. квмв

Программа qmv откроет имена файлов в каталоге в текстовом редакторе по умолчанию и позволит вам редактировать их.

У меня есть следующие три файла в каталоге с именем 'ostechnix'.

Чтобы переименовать файлы в каталоге 'ostechnix', просто выполните:

Теперь измените имена файлов по своему усмотрению. Вы увидите предварительный просмотр в реальном времени, когда редактируете имена файлов.

Кроме того, вы можете перейти в каталог и просто запустить 'qmv' .

Открыв файлы, вы увидите два столбца, как показано на следующем снимке экрана.

Массовое переименование файлов с использованием qmv

Массовое переименование файлов с помощью qmv

В левом столбце отображаются имена исходных файлов, а в правом столбце отображаются имена конечных файлов (имена выходных файлов, которые вы получите после редактирования).

Теперь переименуйте все выходные имена с правой стороны по своему усмотрению.

Массовое переименование файлов с использованием qmv

Массовое переименование файлов с помощью qmv

После переименования файлов сохраните и закройте файл.

Наконец вы увидите следующий вывод:

Теперь проверьте, действительно ли были внесены изменения с помощью команды 'ls':

Видишь? Все файлы переименованы. Не только файлы, renameutils также переименует имена каталогов.

Вот короткая демонстрация программы qmv:

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

Где "-f" относится к формату, а "do" относится только к месту назначения .

Теперь вы увидите только столбец назначения. Это столбец, в который мы вносим изменения.

Отображать столбец файла назначения только в qmv

Отображать столбец файла назначения только в qmv

После этого сохраните и закройте файл.

Подробнее см. справочные страницы.

2. qcp

Программа qcp работает так же, как qmv, но копирует файлы, а не переименовывает их. В этом случае вы получите два экземпляра одного и того же файла. Это означает, что он сохранит как исходные, так и дубликаты файлов.

Переименуйте имена файлов, указанные справа. Сохраните и закройте файл. Наконец, проверьте изменения, сделанные с помощью команды ls:

Подробнее см. справочные страницы.

3. картинка

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

Измените имя файла по своему усмотрению и нажмите ENTER, чтобы переименовать его.

Подробнее см. справочные страницы.

4. исп

Программа icp аналогична imv , но копирует файлы, а не перемещает их.

Дополнительные варианты использования и команды см. в справочных страницах.

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

5. deurlname

Программа deurlname удаляет закодированные в URL символы (например, %20, представляющие пробел) из имен файлов. Некоторые программы, например w3m, сохраняют эти символы в закодированном виде в сохраненных файлах.

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

Посмотрите следующий файл.

В имени файла есть специальные символы и цифры. Если вы очистите его, просто запустите:

Теперь посмотрите, как изменилось имя файла.

Имя файла чистое и читабельное.

Подробнее см. справочные страницы.

Также см. веб-сайт проекта, указанный в конце этого руководства.

Способ 4. Одновременное переименование нескольких файлов с помощью vimv

Как следует из названия, Vimv — это утилита командной строки для массового переименования файлов с помощью редактора Vim. Конечно, вы можете изменить редактор, изменив значение переменной окружения $EDITOR.

Чтобы установить Vimv, клонируйте репозиторий с помощью git:

Скопируйте двоичный файл vimv в свою папку $PATH , например /usr/local/bin/ .

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

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

Вы увидите имена файлов в редакторе Vi. Нажмите i, чтобы переключиться в интерактивный режим и отредактировать имена файлов так же, как вы редактируете текст в редакторе Vi. После этого нажмите клавишу ESC и введите :wq, чтобы сохранить и выйти.

Теперь файлы внутри каталога должны быть переименованы. Вот короткая демонстрация видео.

Для получения дополнительной информации см. репозиторий проекта GitHub, указанный в конце этого руководства.

Способ 5. Пакетное переименование файлов с помощью Emacs

Если у вас есть система с установленным редактором Emacs, вы можете легко выполнить пакетное переименование, выполнив следующие действия.

<р>1. Откройте редактор Emacs.

<р>2. Нажмите Alt+x, введите следующую команду и нажмите ENTER, чтобы переключиться в режим wdired (сокращение от «режим редактирования каталога с возможностью записи»).

<р>3. Введите путь к каталогу (например, /home/sk/ostechnix), который содержит файлы для переименования, и нажмите клавишу ВВОД.

<р>4. Затем нажмите Ctrl+x и Ctrl+q, чтобы переключиться в режим чтения-записи.

<р>5. Теперь переименуйте файлы. После этого нажмите Ctrl+c и Ctrl+c (два раза), чтобы сохранить изменения. Чтобы отменить изменения, нажмите Ctrl+c и Ctrl+k .

Посмотрите демонстрационное видео:

Видишь? Переименовать сразу несколько файлов очень просто.

Способ 6. Массовое переименование файлов с помощью файлового менеджера Thunar

Файловый менеджер Thunar по умолчанию имеет встроенную функцию массового переименования.

Thunar доступен в стандартных репозиториях большинства дистрибутивов Linux.

Чтобы установить его в системах на базе Arch, запустите:

В Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux:

В Debian, Ubuntu, Linux Mint:

После установки вы можете запустить утилиту массового переименования из меню или из панели запуска приложений. Чтобы запустить его из Терминала, используйте следующую команду:

Вот как выглядит массовое переименование.

Утилита массового переименования Thunar

Утилита массового переименования Thunar

Нажмите знак "плюс" и выберите список файлов, которые вы хотите переименовать. Массовое переименование может переименовать имя файлов, суффикс файлов или и имя, и суффикс файлов.

В настоящее время Thunar поддерживает следующие функции массового переименования:

  • Вставить дату или время
  • Вставить или перезаписать
  • Нумерация
  • Удалить символы
  • Найти и заменить
  • Верхний/нижний регистр

Когда вы выберете один из этих критериев в списке выбора, вы увидите предварительный просмотр ваших изменений в столбце Новое имя, как показано на снимке экрана ниже.

Массовое переименование файлов с помощью Thunar

Массовое переименование файлов с помощью Thunar

Выбрав критерии, нажмите кнопку «Переименовать файлы», чтобы переименовать файлы.

Вы также можете открыть массовое переименование из Thunar, выбрав два или более файлов. Выбрав файлы, нажмите F2 или щелкните правой кнопкой мыши и выберите «Переименовать» .

Рекомендуемое чтение:

Способ 7. Переименуйте список файлов с помощью KRename

KRename — это программа для пакетного переименования файлов, которая может переименовывать список файлов на основе набора выражений. Он позволяет переименовывать большое количество файлов, просто добавляя последовательность цифр или меняя регистр.

KRename специально разработан и установлен по умолчанию в дистрибутивах KDE. Вы также можете установить его и в других дистрибутивах Linux.

Например, чтобы установить KRename в Fedora, просто запустите:

Запустите приложение KRename из панели запуска приложений или меню и добавьте все файлы, которые нужно переименовать, в раздел «Файлы».

Добавить файлы в KRename

Добавить файлы в KRename

Убедитесь, что в разделе "Назначение" выбран параметр "Переименовать входные файлы".

Выберите переименование опция входных файлов

Выберите вариант переименования входных файлов

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

KRename plugins section

Раздел плагинов KRename

В последнем разделе раздела вы можете выбрать схему переименования для использования. Вы увидите предварительный просмотр внизу на основе выбранной вами схемы. Если вы согласны с выбранными параметрами, нажмите кнопку "Готово", чтобы переименовать файлы.

Массовое переименование файлы с Krename

Массовое переименование файлов с помощью Krename

Переименованные файлы будут сохранены в том же месте.

KRename — это многофункциональная утилита для переименования. У него так много вариантов при переименовании файлов. Большинство опций говорят сами за себя.

Способ 8. Переименование нескольких файлов и папок с помощью интеллектуального переименования файлов

Smart File Renamer — это графическая программа для одновременного переименования нескольких файлов. Используя Smart File rename, вы можете легко и быстро переименовывать файлы и каталоги сразу парой щелчков мыши. Это кроссплатформенное приложение, которое поддерживает Linux, macOS и Windows. В отличие от других программ, это уместно. Бесплатная версия имеет ограниченную функциональность.

Smart File Renamer доступен в виде пакета моментальных снимков. Вы можете установить его с помощью следующей команды:

После установки запустите его из меню или панели запуска приложений. Добавьте файлы и каталоги, которые вы хотите переименовать, и нажмите кнопку «Переименовать» внизу.

Умное переименование файлов

Умное переименование файлов

Он поддерживает множество правил и фильтров для пакетного переименования. Просто выберите их в правой части окна приложения и нажмите кнопку "Переименовать".

Заключение

Вот так! В этом руководстве мы обсудили 8 методов массового переименования файлов в Linux.Мы предоставили как командную строку, так и графические программы для переименования нескольких файлов за один раз. Просто выберите тот, который вам подходит, и приступайте к работе.

И на этом пока все. Надеюсь, это было полезно. Знаете ли вы какой-либо другой метод, чтобы добавить в этот список? Пожалуйста, укажите их в разделе комментариев ниже. Я проверю и соответствующим образом обновлю это руководство.

Переименование нескольких файлов в Linux кажется простой задачей, но может оказаться довольно сложной. Можно массово переименовывать файлы с помощью команды mv и небольшого количества сценариев Bash или использовать утилиты mmv и rename, которые обычно не устанавливаются по умолчанию. В этом руководстве мы покажем различные примеры одновременного переименования нескольких файлов из командной строки Linux.

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

Переименовать несколько файлов с помощью mv

Команда mv является частью Linux по умолчанию и может использоваться для переименования нескольких файлов, но для выполнения этой работы требуется небольшой сценарий. Некоторые примеры также полагаются на другие утилиты Linux по умолчанию, такие как ls , find , xargs и т. д.

Пример 1. Измените все имена файлов на строчные.

Пример 2. Измените все имена файлов на верхний регистр.

Пример 3. Измените все расширения файлов с .jpg на .jpg .

Пример 4. Удалите расширение .bak из всех файлов.

Пример 5. Добавьте расширение .bak ко всем файлам.

Пример 6. Используйте xargs для добавления «_backup» к каждому файлу.

Пример 7. Используйте команды find , sed и mv, чтобы перевести все файлы в нижний регистр.

Пример 8. Используйте команды find -exec и mv, чтобы добавить «_backup» к каждому файлу, оканчивающемуся на расширение .log.

Пример 9. Аналогичен предыдущему примеру, но замените параметр find'а -exec на xargs, чтобы добавить «_backup» к каждому файлу, оканчивающемуся на расширение .log.

Пример 10. Замените шаблон в каждом файле, используя mv и sed . Это заменит «IMG» на «Отпуск» в каждом файле .jpg.

Пример 11. Добавьте текущую метку времени ко всем файлам, оканчивающимся на .log . Это изменит файл, такой как access.log, на access_20210418040151.log .

Переименовать несколько файлов с переименованием

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

Ubuntu, Debian и Linux Mint:

Fedora, AlmaLinux, CentOS и RHEL:

Arch Linux и Manjaro:

Пример 1. Измените все имена файлов на строчные.

Пример 2. Измените все имена файлов на верхний регистр.

Пример 3. Удалите расширение .bak со всех файлов.

Пример 4. Измените расширение всех файлов .jpg на .jpg .

Пример 5. Измените расширение .JPG в верхнем регистре на .jpg в нижнем регистре для всех файлов.

Пример 6. Удалите пробелы из всех имен файлов.

Пример 7. Замените пробелы символами подчеркивания во всех именах файлов.

Пример 8. Сделайте первую букву имени файла заглавной.

Пример 9. Заменить шаблон в каждом имени файла. Эта команда заменит «IMG» на «Отпуск» в каждом файле .jpg.

Пример 10. Удалить часть имени файла. Эта команда удалит «IMG_» из каждого файла .jpg.

Пример 11. Добавьте расширение .bak ко всем файлам.

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

Утилита mmv отлично подходит для переименования файлов на основе шаблонов, таких как удаление или добавление строк во все файлы или изменение порядка частей имен файлов. Обычно он не устанавливается по умолчанию, но вы можете использовать соответствующую команду ниже, чтобы установить mmv с помощью диспетчера пакетов вашей системы.

Ubuntu, Debian и Linux Mint:

Fedora, AlmaLinux, CentOS и RHEL:

Arch Linux и Manjaro (установка из AUR):

Пример 1. Измените расширение всех файлов .jpg на .jpg .

Пример 2. Измените все имена файлов на строчные.

Пример 3. Замените все имена файлов на верхний регистр.

Пример 4. Изменение порядка частей имени файла. Эта команда изменит музыкальные файлы с шаблоном Song-Artist.mp3 на Artist-Song.mp3 .

Пример 5. Замените первое вхождение «IMG» на «Отпуск» во всех именах файлов.

Пример 6. Добавьте префикс к каждому имени файла. Эта команда добавит «backup_» к каждому файлу .log.

Пример 7. Добавьте суффикс к каждому имени файла. Эта команда добавит «_backup» к каждому файлу .log.

Пример 8. Удалите префикс «IMG_» из всех файлов .jpg.

Пример 9. Удалите суффикс «_old» из всех файлов.

Массовое переименование файлов через графический интерфейс

Если вам не нравится командная строка, вы можете переименовать сразу несколько файлов через графический интерфейс. Одним из лучших инструментов для выполнения этой работы является приложение Bulk Rename, которое поставляется с Thunar.

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

Ubuntu, Debian и Linux Mint:

Fedora, AlmaLinux, CentOS и RHEL:

Arch Linux и Manjaro:

Шаг 1. После установки Thunar найдите и откройте утилиту массового переименования.

Открытие утилиты массового переименования

Шаг 2. Нажмите на значок плюса, чтобы добавить файлы, которые вы хотите переименовать.

Добавление списка файлов в приложение массового переименования

Шаг 3. Выберите из списка вариантов, что вы хотите сделать с файлами. Вы можете изменить их все на прописные или строчные буквы, добавить дату и время, вставить текст в определенную позицию, добавить автоматическую нумерацию, заменить символы или найти и заменить определенные шаблоны в именах файлов, среди прочего. В приведенном ниже примере мы добавили расширение .txt ко всем нашим файлам.

Инструмент массового переименования, показывающий старые имена и новые имена файлов

Шаг 4. Если вас устраивают предварительные изменения имени в столбце «Новое имя», нажмите «Переименовать файлы», чтобы выполнить массовое переименование.

Завершение задания массового переименования

Переименование нескольких файлов в WSL

Если вы используете подсистему Windows для Linux, некоторые приведенные выше команды не будут работать, особенно те, которые требуют изменения файлов в нижнем или верхнем регистре. Windows не учитывает регистр, поэтому файлы File.txt , file.txt и FILE.txt считаются одним и тем же файлом.

Вы просто получите сообщение об ошибке, что файл уже существует, если попытаетесь переименовать FILE.txt в file.txt. Чтобы избежать этой проблемы, используйте один из следующих примеров.

Пример 1. Измените расширение .JPG в верхнем регистре на .jpg в нижнем регистре для всех файлов (используя утилиты по умолчанию).

Пример 2. Измените расширение .JPG в верхнем регистре на .jpg в нижнем регистре для всех файлов (используя утилиту переименования).

Пример 3. Измените расширение .JPG в верхнем регистре на .jpg в нижнем регистре для всех файлов (с помощью утилиты mmv).

Пример 4. Измените все имена файлов на строчные (используя утилиты по умолчанию).

Пример 5. Перевести все имена файлов в нижний регистр (используя утилиту mmv).

Заключение

Можно использовать утилиты Bash по умолчанию для всех массовых переименований в Linux, но инструменты переименования и mmv значительно упрощают эту задачу. Мы также можем использовать приложение Thunar Bulk Rename, когда предпочитаем использовать графический интерфейс, а не командную строку. Примеры в этом руководстве охватывают широкий спектр сценариев переименования и могут быть легко адаптированы для других нужд.

Если наш контент помог вам, угостите нас кофе. Мы ценим вашу поддержку!

Читайте также: