Переименование группы файлов linux

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

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

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

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

В Linux существует замечательная стандартная утилита mv, которая предназначена для перемещения файлов. Но по своей сути перемещение — это то же самое, что и переименование файла linux, если выполняется в одной папке. Давайте сначала рассмотрим синтаксис этой команды:

$ mv опции файл-источник файл-приемник

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

  • -f — заменять файл, если он уже существует;
  • -i — спрашивать, нужно ли заменять существующие файлы;
  • -n — не заменять существующие файлы;
  • -u — заменять файл только если он был изменен;
  • -v — вывести список обработанных файлов;

Чтобы переименовать файл linux достаточно вызвать утилиту без дополнительных опций. Просто передав ей имя нужного файла и новое имя:

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

mv /home/sergiy/test/newfile /home/sergiy/test/file1

Обратите внимание, что у вас должны быть права на запись в ту папку, в которой вы собираетесь переименовывать файлы. Если папка принадлежит другому пользователю, возможно, нужно будет запускать программу через sudo. Но в таком случае лучше запускать с опцией -i, чтобы случайно ничего не удалить.

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

В Linux есть еще одна команда, которая позволяет переименовать файл. Это rename. Она специально разработана для этой задачи, поэтому поддерживает такие вещи, как массовое переименование файлов linux и использование регулярных выражений. Синтаксис утилиты тоже сложнее:

$ rename опции ‘s/ старое_имя / новое_имя ‘ файлы

$ rename опции старое_имя новое_имя файлы

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

  • -v — вывести список обработанных файлов;
  • -n — тестовый режим, на самом деле никакие действия выполнены не будут;
  • -f — принудительно перезаписывать существующие файлы;
Читайте также:  Лучшие загрузочные диски linux

Например, переименуем все htm файлы из текущей папки в .html:

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

  • g (Global) — применять ко всем найденным вхождениям;
  • i (Case Censitive) — не учитывать регистр.

Модификаторы размещаются в конце регулярного выражения, перед закрывающей кавычкой. Перед тем, как использовать такую конструкцию, желательно ее проверить, чтобы убедиться, что вы не допустили нигде ошибок, тут на помощь приходит опция -n. Заменим все вхождения DSC на photo в именах наших фотографий:

rename -n ‘s/DSC/photo/gi’ *.jpeg

Будут обработаны DSC, DsC и даже dsc, все варианты. Поскольку использовалась опция -n, то утилита только выведет имена изображений, которые будут изменены.

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

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

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

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

sudo apt install pyrenamer

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

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

Опытным пользователям понравится возможность pyRenamer для переименования мультимедийных файлов из их метаданных. Кроме того, вы можете переименовать один файл если это нужно. Эта утилита полностью реализует функциональность mv и remove в графическом интерфейсе.

Выводы

В этой статье мы рассмотрели как переименовать файл в консоли linux. Конечно, есть и другие способы, например, написать скрипт, или использовать файловые менеджеры. А как вы выполняете сложные операции по переименованию? Напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Команда rename

Команду rename в Linux целесообразно использовать при групповом переименовании файлов или замены определённых символов или частей имени файла.

Команда rename группового переименования файлов

Установка

Если команда rename изначально не установлена в вашем дистрибутиве, то её можно будет достаточно просто установить.

В Arch Linux нет необходимости в установке этой утилиты, так как она входит в пакет util-linux .

Читайте также:  Grub cmdline linux default acpi off

Синтаксис

Опции

-v, —verbose Объяснить производимые действия -s, —symlink Переименовывать цели символьных ссылок -n, —no-act Не вносить никаких изменений -a, —all Заменить все вхождения -l, —last Заменить только последнее вхождение -o, —no-overwrite Не перезаписывать существующие файлы -i, —interactive Запрос перед перезаписью -h, —help Вывести справку -V, —version Вывести версию

Использование команды rename в Linux

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

Для примера воспользуется каталогом Directory :

oleg@mobile:~/Directory:$ ls -l итого 20 -rw-r--r-- 1 oleg users 330 янв 30 14:51 example.txt -rw-r--r-- 1 oleg users 806 сен 10 2022 usa-capitals-ru.txt -rw-r--r-- 1 oleg users 1706 сен 10 2022 usa-states-capitals.txt -rw-r--r-- 1 oleg users 1136 сен 10 2022 usa-states-ru.txt -rw-r--r-- 1 oleg users 469 сен 30 2022 usa-states.txt oleg@mobile:~/Directory:$ 

Переименуем в каталоге все файлы, заменив суффиксы файлов с .txt на .tx :

oleg@mobile:~/Directory:$ rename .txt .tx *.txt oleg@mobile:~/Directory:$ 
oleg@mobile:~/Directory:$ ls -l итого 20 -rw-r--r-- 1 oleg users 330 янв 30 14:51 example.tx -rw-r--r-- 1 oleg users 806 сен 10 2022 usa-capitals-ru.tx -rw-r--r-- 1 oleg users 1706 сен 10 2022 usa-states-capitals.tx -rw-r--r-- 1 oleg users 1136 сен 10 2022 usa-states-ru.tx -rw-r--r-- 1 oleg users 469 сен 30 2022 usa-states.tx oleg@mobile:~/Directory:$ 

Замена дефиса на подчёркивание

Некоторые имена файлов имеют более одного дефиса. Запустим утилиту с опцией -a , так как без неё будет изменено лишь первое вхождение:

oleg@mobile:~/Directory:$ rename -a '-' '_' *.tx oleg@mobile:~/Directory:$ 

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

oleg@mobile:~/Directory:$ ls -l итого 20 -rw-r--r-- 1 oleg users 330 янв 30 14:51 example.tx -rw-r--r-- 1 oleg users 806 сен 10 2022 usa_capitals_ru.tx -rw-r--r-- 1 oleg users 1706 сен 10 2022 usa_states_capitals.tx -rw-r--r-- 1 oleg users 1136 сен 10 2022 usa_states_ru.tx -rw-r--r-- 1 oleg users 469 сен 30 2022 usa_states.tx oleg@mobile:~/Directory:$ 

Удаление нежелательных символов

В этом примере я специально добавил в те же файлы пробелы перед символом подчёркивания:

oleg@mobile:~/Directory:$ ls -l итого 20 -rw-r--r-- 1 oleg users 330 янв 30 14:51 example.tx -rw-r--r-- 1 oleg users 806 сен 10 2022 'usa _capitals _ru.tx' -rw-r--r-- 1 oleg users 1706 сен 10 2022 'usa _states _capitals.tx' -rw-r--r-- 1 oleg users 1136 сен 10 2022 'usa _states _ru.tx' -rw-r--r-- 1 oleg users 469 сен 30 2022 'usa _states.tx' oleg@mobile:~/Directory:$ 

В именах файлов операционной системы Linux использование символа пробела крайне нежелательно.

oleg@mobile:~/Directory:$ rename -a ' _' '_' * oleg@mobile:~/Directory:$ 
oleg@mobile:~/Directory:$ ls -l итого 20 -rw-r--r-- 1 oleg users 330 янв 30 14:51 example.tx -rw-r--r-- 1 oleg users 806 сен 10 2022 usa_capitals_ru.tx -rw-r--r-- 1 oleg users 1706 сен 10 2022 usa_states_capitals.tx -rw-r--r-- 1 oleg users 1136 сен 10 2022 usa_states_ru.tx -rw-r--r-- 1 oleg users 469 сен 30 2022 usa_states.tx oleg@mobile:~/Directory:$ 

Будущий результат

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

Читайте также:  Linux mint mate x86

Для примера проверим результат преобразования в именах файлов подчёркивания в дефис:

oleg@mobile:~/Directory:$ rename -anv '_' '-' *.tx oleg@mobile:~/Directory:$ rename -anv '_' '-' *.tx `usa_capitals_ru.tx' -> `usa-capitals-ru.tx' `usa_states_capitals.tx' -> `usa-states-capitals.tx' `usa_states_ru.tx' -> `usa-states-ru.tx' `usa_states.tx' -> `usa-states.tx' oleg@mobile:~/Directory:$ 

В имена файлов не было внесено никаких изменений:

oleg@mobile:~/Directory:$ ls -l итого 20 -rw-r--r-- 1 oleg users 330 янв 30 14:51 example.tx -rw-r--r-- 1 oleg users 806 сен 10 2022 usa_capitals_ru.tx -rw-r--r-- 1 oleg users 1706 сен 10 2022 usa_states_capitals.tx -rw-r--r-- 1 oleg users 1136 сен 10 2022 usa_states_ru.tx -rw-r--r-- 1 oleg users 469 сен 30 2022 usa_states.tx oleg@mobile:~/Directory:$

Заключение

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

Источник

Переименование группы файлов linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Теперь решим нашу задачу стандартной командой 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, если стоят соответствующие утилиты.

Источник

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