Меню Рубрики

Linux групповое переименование файлов

3 мин для чтения Как одновременно переименовать несколько файлов в Linux

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

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

В этом методе нет ничего плохого. Это стандартный способ в конце концов.

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

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

Команда rename в Linux

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

Это синтаксическая команда переименования:

Команда rename имеет следующие параметры:

  • -v: подробный режим.
  • -n: никаких действий Показать файлы, которые будут переименованы, но не переименовывать файлы.
  • -о: нет перезаписи. Не перезаписывайте существующие файлы.
  • -f: сила. Перезаписать существующие файлы.
  • -s: не переименовывать символическую ссылку, но ее цель

Обратите внимание, что команда rename не является стандартной утилитой, предварительно установленной в дистрибутивах Linux, таких как команда mv или cp . Возможно, вам придется установить ее. Если вы пользователь sudo в Ubuntu или Debian, вы можете использовать эту команду для установки переименования:

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

Сценарий 1: заменить символ другим во всех именах файлов в Linux

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

Естественно, вы хотите удалить пробелы и заменить их подчеркиванием (_). Команда переименования будет очень удобна здесь. Посмотрим как.

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

Если вы даже отдаленно знакомы с регулярными выражениями , вы поймете, что s / / _ / g ищет пространство и заменяет все вхождения пространства на _.

Интересная часть – звездочка (*). Звездочка говорит вам переименовать соответствующие файлы в текущем каталоге.

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

Сценарий 2. Изменение расширений нескольких файлов одновременно в Linux

Вот еще один сценарий для вас. У вас есть несколько файлов с именами, такими как my_file.xyz, и вы хотите переименовать эти файлы, чтобы они стали чем-то вроде my_file.abc.

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

Позвольте нам объяснить вам вышеуказанную команду.

‘s / .xyz $ /. abc /’: это регулярное выражение, которое означает замену символа .xyz в конце строки на .abc.

** означает поиск в текущем каталоге и его подкаталогах.

Вам понравилась команда rename?

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

Тем не менее, мы находим эту команду довольно удобной при одновременном переименовании нескольких файлов.

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

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

Источник

Переименование файлов в 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-регулярных выражений.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Массовое переименование файлов в 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 — программа для массового перемещения, переименования, копирования, объединения файлов.

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

# apt-get install mmv

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Wifislax mac os x
  • Wifi сканер для mac os бесплатно
  • Wifi модуль для mac os
  • Wifi анализатор mac os
  • Wifi manager mac os