Linux пакетное переименование файлов

Содержание
  1. Переименование файлов в Linux
  2. Переименование командой mv
  3. Переименование файла
  4. Переименование директории
  5. Переименование и перемещение
  6. Переименование командой rename
  7. Изменение расширения файлов
  8. Замена пробелов на подчеркивание
  9. Конвертация имен файлов в строчные буквы
  10. Конвертация имен файлов в прописные буквы
  11. Показать, что именно будет переименовано, но не переименовывать
  12. Массовое переименование с использованием программ
  13. 6 способов переименования нескольких файлов сразу в Linux
  14. Переименование нескольких файлов сразу в Linux
  15. Метод 1 – Использование mmv
  16. Способ 2. Использование утилиты rename
  17. Команда для переименования Rename в Linux (Переименовать несколько файлов)
  18. Rename Command in Linux (Rename Multiple Files)
  19. В этом руководстве мы объясним, как использовать rename команду для пакетного переименования файлов.
  20. Установка rename
  21. С помощью rename
  22. rename Примеры
  23. Заменить пробелы в именах файлов подчеркиванием
  24. Преобразование имен файлов в нижний регистр
  25. Преобразовать имена файлов в верхний регистр
  26. Удалить .bak из имен файлов
  27. Переименовать .jpeg и .JPG имена файлов в .jpg
  28. Вывод
  29. Linux пакетное переименование файлов

Переименование файлов в Linux

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

Переименование командой mv

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

Синтаксис команды mv очень простой:

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

Основные опции:
-f — перезаписывать существующие файлы.
-n — не перезаписывать существующие файлы.
-i — выдавать запрос на перезапись существующих файлов.
-u — не перемещать файлы, которые уже существуют, если существующие файлы новее (время модификации новее).
-v — выводить имя каждого файла перед его переносом.

Как задавать имена файлов и директорий для переименования:

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

Переименование файла

Переименование файла myfile1.dat в файл myfile2.dat:

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

Переименование директории

Переименование директории /home/pingvinus/mydir1 в директорию /home/pingvinus/mydir2 . Справедливо, если /home/pingvinus/mydir2 не существует.

Если /home/pingvinus/mydir2 существует, то, выполнив команду:

директория mydir1 будет перемещена внутрь директории /home/pingvinus/mydir2 . То есть mydir1 будет в результате находиться по адресу /home/pingvinus/mydir2/mydir1 .

Переименование и перемещение

Если в качестве файла назначения указан новый путь и новое имя файла, то файл будет перемещен и переименован. Например, следующая команда перемещает файл myfile1.dat в директорию /home/pingvinus/dir и переименовывает его в myfile2.dat :

Переименование командой rename

Команда rename служит для массового (пакетного) переименования файлов. Она позволяет выполнять замену определенных символов или частей имени файла и использованием Perl-регулярных выражений.

Читайте также:  Эмуляция windows для андроид

Если вдруг в вашем дистрибутиве нет команды rename , то ее можно установить, выполнив (выберите соответствующую команду для вашего дистрибутива):

Синтаксис команды rename :

старое_имя — регулярное выражение или часть имени файла, которое нужно заменить на новое_имя .
новое_имя — задает результирующее имя файла (может быть регулярным выражением).

Основные опции:
-f — перезаписывать существующие файлы.
-n — вывести список файлов, которые будут переименованы и их новые имена, но не выполнять переименование.
-v — вывести список обработанных файлов.

Проще всего понять, как пользоваться данной командой, на примерах.

Изменение расширения файлов

Массово изменить расширение .html на .php у всех html-файлов.

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

Замена пробелов на подчеркивание

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

Конвертация имен файлов в строчные буквы

Конвертация имен файлов в прописные буквы

Показать, что именно будет переименовано, но не переименовывать

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

Например, мы хотим изменить расширение у файлов с .jpeg на .jpg . Используем опцию -n , чтобы просто вывести какие файлы будут переименованы:

Полное описание команд mv и rename можно получить, выполнив в терминале команды:

Массовое переименование с использованием программ

Для массового переименования файлов можно воспользоваться программами:

Источник

6 способов переименования нескольких файлов сразу в Linux

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

Но команда mv не будет поддерживать переименование нескольких файлов одновременно.

Она может переименовывать только один файл за раз.

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

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

Все примеры, представленные здесь, тестируются в Ubuntu 18.04 LTS, однако они должны работать на любых операционных системах Linux.

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

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

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

Метод 1 – Использование mmv

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

Она доступна в репозиториях по умолчанию систем на базе Debian.

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

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

Теперь вы захотите переименовать все файлы, начинающиеся с буквы «a» на «b».

Конечно, вы можете сделать это вручную через несколько секунд.

Но подумайте, есть ли у вас сотни файлов и хотите их все переименовать?

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

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

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

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

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

Читайте также:  Ue4 building on linux

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

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

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

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

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

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

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

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

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

Способ 2. Использование утилиты rename

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

Команда rename устанавливается в большинстве Unix-подобных операционных систем.

Если он по умолчанию недоступен, выполните следующую команду, чтобы установить его в системах на базе Debian:

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

Заменим первое abc на xyz, где бы оно ни находилось. Для этого запустите:

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

Иногда вы можете просто вывести выходные данные вместо переименования файлов.

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

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

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

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

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

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

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

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

Мы также можем удалить все пустые ячейки в имени файла.

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

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

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

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

Возможно, вы захотите изменить расширение файла, но не переименовать имена файлов.

Это также возможно.

Следующая команда переименовала бы все * .txt-файлы в * .doc.

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

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

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

Источник

Команда для переименования Rename в Linux (Переименовать несколько файлов)

Rename Command in Linux (Rename Multiple Files)

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

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

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

Установка rename

Существует две версии rename команды с разным синтаксисом и функциями. Мы будем использовать версию команды Perl rename .

Читайте также:  Пишем службу для windows

Если эта версия не установлена ​​в вашей системе, используйте менеджер пакетов вашего дистрибутива Linux для ее установки:

Ubuntu и Debian

CentOS и Fedora

Arch Linux

С помощью rename

Ниже приведен общий синтаксис rename команды:

Например, следующая команда изменит расширение всех .css файлов на .scss :

Давайте объясним команду более подробно:

  • s/search_pattern/replacement/ — оператор замещения.
  • .css — Шаблон поиска. Это первый аргумент в операторе подстановки. Команда rename будет искать этот шаблон в заданном имени файла и, если найден, заменит его аргументом замены.
  • .scss — Замена. Второй аргумент в операторе подстановки.
  • *.css — Все файлы с расширением «.css». Подстановочный * знак ( ) — это символ, используемый для обозначения нуля, одного или нескольких символов.

Перед выполнением команды и переименованием файлов и каталогов всегда полезно использовать -n параметр, который будет выполнять «пробный запуск» и показывать, какие файлы будут переименованы:

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

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

Если вы хотите rename напечатать имена файлов, которые были успешно переименованы, используйте параметр -v (подробный):

rename Примеры

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

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

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

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

Удалить .bak из имен файлов

Переименовать .jpeg и .JPG имена файлов в .jpg

Вывод

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

Источник

Linux пакетное переименование файлов

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

Rename

Утилита rename входит в стандартную поставку Debian, так что начнем с нее.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

-v отобразить имена успешно переименованных файлов.

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

-f перезаписать уже существующие файлы.

perlexpr — шаблон для переименования.

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

# rename ‘s/.sh/.sh.bak/g’ *.sh

Рассмотрим perlexr подробнее:

s=указывает, что требуется замещение.

/.sh/=Строка, которую будем замещать.

/.sh.bak/ = строка, на которую будем замещать

g=global, будем замещать все найденные вхождения.

С помощью rename можно быстро изменить регистр файлов. Например поднимем регистр файлов из примера:

MMV

mmv — программа для массового перемещения, переименования, копирования, объединения файлов.

По умолчанию она не включена в состав Debian. Поставим ее:

# apt-get install mmv

Наша задача решается одной строкой:

MV

Теперь решим нашу задачу стандартной командой mv. Для этого нам прийдется немного попрограммировать в bash.

for i in *.sh;
do mv $i `basename $i sh`sh.bak;
done

Попробуем усложить задачу. Например у нас есть куча файлов JPG:

1234234.jpg
e456567657.jpg
234df34.jpg

Мы хотим привести их к следующему виду:

file1.jpg
file2.jpg
file3.jpg

j=0;
for i in *.jpg;
do let j+=1;
mv $i file$j.jpg ;
done

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

1. Через + выбираем файлы по маске *.sh

2. Нажимаем F6 и в destination указываем *.sh.bak

Все примеры, приведенные выше, так или иначе работают во всех Linux, BSD, Mac OS, если стоят соответствующие утилиты.

Источник

Оцените статью