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

Как переименовать файлы и каталоги в Linux

How to Rename Files and Directories in Linux

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

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

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

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

mv Команда ( не хватает хода) используется для переименования или перемещения файлов из одного места в другое. Синтаксис mv команды следующий:

source Может быть один или несколько файлов или каталогов и destination может быть один файл или каталог.

  • Если вы указываете несколько файлов как source , destination должен быть каталог. В этом случае source файлы перемещаются в целевой каталог.
  • Если вы указываете один файл как source , а destination целью является существующий каталог, то файл перемещается в указанный каталог.
  • Чтобы переименовать файл, вам нужно указать один файл как source и один файл как destination цель.

Например, чтобы переименовать файл так, file1.txt как file2.txt вы запустите:

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

Команда mv может переименовывать только один файл за раз, но ее можно использовать вместе с другими командами, такими как find или внутри bash for или while циклов, для переименования нескольких файлов.

В следующем примере показано, как использовать цикл Bash for для переименования всех .html файлов в текущем каталоге, изменив .html расширение на .php .

  • Первая строка создает for цикл и перебирает список всех файлов, окантованных .html .
  • Вторая строка применяется к каждому элементу списка и перемещает файл в новый, заменяя его .html на .php . Часть $ использует расширение параметра оболочки, чтобы удалить .html часть из имени файла.
  • done указывает на конец сегмента цикла.

Вот пример использования mv в сочетании с find для достижения того же, что и выше:

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

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

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

Существует две версии rename команды с разным синтаксисом. В этом уроке мы будем использовать версию команды Perl rename . Если у вас не установлена ​​эта версия в вашей системе, вы можете легко установить ее, используя менеджер пакетов вашего дистрибутива.

Установить rename на Ubuntu и Debian

Установить rename на CentOS и Fedora

Установить rename на Arch Linux

Синтаксис rename команды следующий:

Команда rename переименует в files соответствии с указанным perlexpr регулярным выражением. Вы можете прочитать больше о регулярных выражениях perl здесь .

Следующий пример изменит все файлы с расширением .html на .php :

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

Вывод будет выглядеть примерно так:

По умолчанию rename команда не перезаписывает существующие файлы. Передайте -f опцию, чтобы разрешить перезаписывать существующие файлы:

Ниже приведены еще несколько распространенных примеров использования rename команды:

Заменить пробелы в именах файлов подчеркиванием

Преобразование имен файлов в нижний регистр

Преобразовать имена файлов в верхний регистр

Вывод

Мы показали вам , как использовать mv и rename команды для переименования файлов.

Конечно, есть другие команды для переименования файлов в Linux, такие как mmv . Новые пользователи Linux, которых пугает командная строка, могут использовать инструменты пакетного переименования GUI, такие как Métamorphose .

Источник

Как переименовать файлы и каталоги в Linux

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

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

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

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

Команда mv (сокращение от move) используется для переименования или перемещения файлов из одного места в другое. Синтаксис команды mv следующий:

source может быть один или несколько файлов или каталоги, а destination может быть один файл или каталог.

  • Если вы укажете несколько файлов в качестве source , destination должен быть каталог. В этом случае source файлы перемещаются в целевой каталог.
  • Если указать один файл в качестве source и destination целевой существующий каталог, то файл перемещается в указанный каталог.
  • Чтобы переименовать файл, вам необходимо указать один файл в качестве source и один файл в качестве destination объекта.

Например, чтобы переименовать файл file1.txt в file2.txt вы должны запустить:

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

Команда mv может переименовывать только один файл за раз, но ее можно использовать вместе с другими командами, такими как find или inside bash for циклов for или while для переименования нескольких файлов.

В следующем примере показано, как использовать цикл for в Bash для переименования всех файлов .html в текущем каталоге, изменив расширение .html на .php .

Давайте проанализируем код построчно:

  • Первая строка создает цикл for и выполняет итерацию по списку всех файлов с .html .
  • Вторая строка применяется к каждому элементу списка и перемещает файл в новый, заменяя .html на .php . Часть $ использует расширение параметра оболочки для удаления части .html из имени файла.
  • done указывает конец сегмента цикла.

Вот пример использования mv в сочетании с find для достижения того же, что и выше:

Команда find передает все файлы, заканчивающиеся на .html в текущем каталоге, в mv один за другим с использованием параметра -exec . Строка <> — это имя файла, который в данный момент обрабатывается.

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

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

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

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

Установить rename в Ubuntu и Debian

Установить rename в CentOS и Fedora

Установить rename в Arch Linux

Синтаксис команды rename следующий:

Команда rename переименует files соответствии с указанным регулярным выражением perlexpr . Вы можете узнать больше о регулярных выражениях Perl здесь .

В следующем примере все файлы с расширением .html изменятся на .php :

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

Результат будет выглядеть примерно так:

По умолчанию команда rename не перезаписывает существующие файлы. Передайте параметр -f чтобы разрешить перезапись существующих файлов:

Ниже приведены еще несколько распространенных примеров использования команды rename :

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

Преобразование имен файлов в нижний регистр

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

Выводы

Мы показали вам, как использовать команды mv и rename для переименования файлов.

Существуют также другие команды для переименования файлов в Linux, такие как mmv . Новые пользователи Linux, которых пугает командная строка, могут использовать инструменты пакетного переименования графического интерфейса пользователя, такие какMétamorphose .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Как переименовать сразу несколько файлов в Linux

Главное меню » Операционная система Linux » Как переименовать сразу несколько файлов в Linux

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

Утилита mmv доступна в репозиториях по умолчанию систем на базе Debian. Чтобы установить его на Debian, Ubuntu, Linux Mint, выполните следующую команду:

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

Теперь вы хотите переименовать все файлы, начинающиеся с буквы «a» на «b». Конечно, вы можете сделать это вручную через несколько секунд. Но подумайте, есть ли у вас сотни файлов и хотите их переименовать? Это довольно трудоемкий процесс. Здесь команда mmv приходит в помощь.

Чтобы переименовать все файлы, начиная с буквы «a» до «b», просто запустите:

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

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

Объяснение

В приведенном выше примере первым параметром (a \ *) является шаблон «from», а второй параметр «to» (b \ # 1). В соответствии с приведенным выше примером, mmv будет искать любые имена файлов с буквой «a» и переименовывать сопоставленные файлы в соответствии со вторым параметром, то есть шаблоном «to». Мы используем подстановочные знаки, такие как ‘*’, ‘?’ и ‘[]’, чтобы соответствовать одному или нескольким произвольным символам. Помните, что вы должны избегать символов подстановки, иначе они будут расширены оболочкой, а mmv не поймет их.

«# 1» в шаблоне «to» является индексом подстановки. Он соответствует первому шаблону, найденному в шаблоне «from». «# 2» в шаблоне «to» будет соответствовать второму подстановочному знаку и так далее. В нашем примере у нас есть только один шаблон (звездочка), поэтому мы пишем # 1. И, хэш-знак также должен быть экранирован. Кроме того, вы можете заключить шаблоны с кавычками.

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

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

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

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

Давайте проверим, действительно ли «abc» заменено на «xyz» или нет.

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

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

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

Для получения дополнительной информации см. Справочные страницы.

Обновить:

Файловый менеджер Thunar имеет встроенную опцию массовое переименование по умолчанию. Если вы используете thunar, гораздо проще переименовывать файлы, чем использовать команду mmv.

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

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

На Debian, Ubuntu, Linux Mint:

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

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

Щелкните знак плюса и выберите список файлов, которые вы хотите переименовать. Массовое переименование может переименовать имя файлов, суффикс файлов или имя и суффикс файлов. В настоящее время Thunar поддерживает следующие массовые переименования:

    Вставить дату или время

Когда вы выберете один из этих критериев из списка выбора, вы увидите предварительный просмотр изменений в столбце «New Name» , как показано на следующем скриншоте.

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

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

И это все на данный момент. Надеюсь, это было полезно. Будьте на связи!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как переименовать несколько файлов в каталоге по некоторому шаблону в Linux?

У меня есть каталог, в котором есть файлы со случайными именами. Что я хочу сделать, это переименовать файлы с file1, file2 и так далее.Лексикографически меньшее имя файла должно быть пронумеровано меньшим номером. Как я могу это сделать?

4 ответа 4

Простой скрипт bash должен это сделать.

Чтобы помочь с построчным объяснением:

  1. Расположение оболочки bash, в которой он выполняется, определяется вашей переменной среды.
  2. Установите переменную count в 0
  3. Создает цикл for, перебирая вывод команды ls (по умолчанию отсортирован по алфавиту).
  4. Перемещает (т.е. переименовывает) файл «i» (текущий в цикле) в file#.ext . «#» — это текущее число в «count» и материал после «.» это быстрый способ получить текущее расширение файла (так что это может работать в папке с различными расширениями файлов).
  5. Увеличить переменную счетчика

петля, петля, петля

Примечание:

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

Это предполагает, что у вас есть только имена файлов, такие как «file.txt», а не «this.is.a.file.txt»

Вы можете использовать этот скрипт Python:

Возможность bash (аналогично решению nerdwaller, но без подоболочек и разветвлений в awk):

Переключатели для mv :

  • -n без клоббера: не перезаписывает существующий файл. Удалите его, если вы действительно хотите перезаписать файлы (может быть недоступно в зависимости от вашей версии mv ),
  • -v для многословия: расскажите, что он делает. Весьма необязательно (но мне нравится, когда эти строки на моем терминале производят впечатление на моих коллег),
  • — для конца опций: без этого, и если имя файла начинается с дефиса, это запутает mv поскольку он попытается интерпретировать его как опцию. Может быть недоступно в зависимости от вашей версии mv . Используйте его, если доступно!

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

Если вам тоже нужно обрабатывать расширения (как в версии nerdwaller), вам не нужен awk, все это можно сделать в bash:

Обратите внимание, что нумерация не будет иметь начальных нулей, поэтому вы получите файлы с именем так:

и это может испортить порядок файлов в списках. Если вам нужны также ведущие нули:

И если вы хотите сохранить оригинальное расширение файла, замените строку

  • Поскольку для этого используется глобализация bash , это может быть довольно медленным, если в вашем каталоге огромное количество файлов (глобализация может занять некоторое время).
  • Это переименует все, включая каталоги, но не скрытые файлы.
  • У меня нет никаких решений относительно скорости в случае огромного количества файлов в bash.
  • Если вам нужно удалить каталоги из этой процедуры переименования и переименовать только файлы, добавьте [[ -f $i ]] || continue сразу после for i in *; do заявление.
  • Если вам нужно также переименовать скрытые файлы, добавьте shopt -s dotglob сразу после shopt -s nullglob .

Если вы прочитаете здесь, я думаю, вы сможете создать что-то, что соответствует вашим собственным потребностям, из примеров, которые я вам дал, надеюсь, используя хорошую практику bash (при условии, что вы решите свою проблему, используя bash, конечно).

Источник

Читайте также:  Включение компонентов windows 10 для общего доступа
Оцените статью