Переименование файла linux — очень простая операция, но для новичков в Linux эта задача может оказаться сложной. Также здесь есть несколько нюансов и возможностей, которые желательно знать уже опытным пользователям, например, массовое переименование. В графическом интерфейсе все делается очень просто, но настоящую гибкость дает терминал.
В этой статье мы рассмотрим как переименовать файл в Linux с помощью терминала, рассмотрим такие возможности, как массовое пакетное переименование файлов, а также регулярные выражения.
Как переименовать файл в Linux с помощью mv
В Linux существует замечательная стандартная утилита mv, которая предназначена для перемещения файлов. Но по своей сути перемещение — это то же самое, что и переименование файла linux, если выполняется в одной папке. Давайте сначала рассмотрим синтаксис этой команды:
$ mv опции файл-источник файл-приемник
Теперь рассмотрим основные опции утилиты, которые могут вам понадобиться:
- -f — заменять файл, если он уже существует;
- -i — спрашивать, нужно ли заменять существующие файлы;
- -n — не заменять существующие файлы;
- -u — заменять файл только если он был изменен;
- -v — вывести список обработанных файлов;
Чтобы переименовать файл linux достаточно вызвать утилиту без дополнительных опций. Просто передав ей имя нужного файла и новое имя:
mv file newfile
Как видите, файл был переименован. Вы также можете использовать полный путь к файлу или переместить его в другую папку:
mv /home/sergiy/test/newfile /home/sergiy/test/file1
Обратите внимание, что у вас должны быть права на запись в ту папку, в которой вы собираетесь переименовывать файлы. Если папка принадлежит другому пользователю, возможно, нужно будет запускать программу через sudo. Но в таком случае лучше запускать с опцией -i, чтобы случайно ничего не удалить.
Переименование файлов Linux с помощью rename
В Linux есть еще одна команда, которая позволяет переименовать файл. Это rename. Она специально разработана для этой задачи, поэтому поддерживает такие вещи, как массовое переименование файлов linux и использование регулярных выражений. Синтаксис утилиты тоже сложнее:
$ rename опции ‘s/старое_имя/новое_имя‘ файлы
Или:
$ rename опции старое_имя новое_имя файлы
В качестве старого имени указывается регулярное выражение или часть имени которую нужно изменить, новое имя указывает на что нужно заменить. Файлы — те, которые нужно обработать, для выбора файлов можно использовать символы подставки, такие как * или ?.
Рассмотрим опции утилиты:
- -v — вывести список обработанных файлов;
- -n — тестовый режим, на самом деле никакие действия выполнены не будут;
- -f — принудительно перезаписывать существующие файлы;
Например, переименуем все htm файлы из текущей папки в .html:
rename 's.htm/.html/' *.htm
Или для изображений:
rename 's.jpeg/.jpg/'*
Символ звездочки означает, что переименование файлов linux будет выполнено для всех файлов в папке. В регулярных выражениях могут применяться дополнительные модификаторы:
- g (Global) — применять ко всем найденным вхождениям;
- i (Case Censitive) — не учитывать регистр.
Модификаторы размещаются в конце регулярного выражения, перед закрывающей кавычкой. Перед тем, как использовать такую конструкцию, желательно ее проверить, чтобы убедиться, что вы не допустили нигде ошибок, тут на помощь приходит опция -n. Заменим все вхождения DSC на photo в именах наших фотографий:
rename -n 's/DSC/photo/gi' *.jpeg
Будут обработаны DSC, DsC и даже dsc, все варианты. Поскольку использовалась опция -n, то утилита только выведет имена изображений, которые будут изменены.
Можно использовать не только обычную замену, но и полноценные регулярные выражения чтобы выполнить пакетное переименование файлов linux, например, переделаем все имена в нижний регистр:
rename 'y/A-Z/a-z/'*.jpeg
Из этого примера мы видим, что даже если такой файл уже существует, то он перезаписан по умолчанию не будет. Не забывайте использовать опцию -n чтобы ничего случайно не повредить.
Переименование файлов в pyRenamer
Если вы не любите использовать терминал, но вам нужно массовое переименование файлов Linux, то вам понравится утилита pyrenamer. Это графическая программа и все действия здесь выполняются в несколько щелчков мыши. Вы можете установить ее из официальных репозиториев:
sudo apt install pyrenamer
В окне программы вы можете видеть дерево файловой системы, центральную часть окна, где отображаются файлы, которые будут изменены, а также панель для указания параметров переименования.
Вы можете удалять или добавлять символы, переводить регистр, автоматически удалять пробелы и подчеркивания. У программы есть подсказки, чтобы сделать ее еще проще:
Опытным пользователям понравится возможность pyRenamer для переименования мультимедийных файлов из их метаданных. Кроме того, вы можете переименовать один файл если это нужно. Эта утилита полностью реализует функциональность mv и remove в графическом интерфейсе.
Выводы
В этой статье мы рассмотрели как переименовать файл в консоли linux. Конечно, есть и другие способы, например, написать скрипт, или использовать файловые менеджеры. А как вы выполняете сложные операции по переименованию? Напишите в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Переименование файлов в Linux можно выполнять средствами графических программ, а также через командную строку. Можно переименовать один файл, а можно сразу группу файлов — массовое переименование. Рассмотрим различные способы, с помощью которых можно переименовывать файлы в Linux.
Переименование командой mv
Команда mv (от слова move) используется для переименования или перемещения файлов и директорий из командной строки.
Синтаксис команды mv очень простой:
mv опции источник назначение
источник — файл(ы) или директория, которую необходимо переместить или переименовать.
назначение — файл или директория, в которую будет перемещен источник.
Основные опции:
-f — перезаписывать существующие файлы.
-n — не перезаписывать существующие файлы.
-i — выдавать запрос на перезапись существующих файлов.
-u — не перемещать файлы, которые уже существуют, если существующие файлы новее (время модификации новее).
-v — выводить имя каждого файла перед его переносом.
Как задавать имена файлов и директорий для переименования:
- Чтобы переименовать файл с помощью команды mv нужно в качестве источника задать данный файл, а в качестве назначения указать новое имя файла.
- Если указывается путь до файла, то директории должны совпадать, иначе файл будет перемещен в другую директорию.
- Если в качестве источника указать файл, а в качестве назначения путь до файла в другой директории и задать новое имя файла, то файл будет перемещен в другую директорию и переименован.
- Если в качестве источника указана директория, а в качестве назначения задано новое имя для данной директории, то директория будет просто переименована. Если же директория назначения уже существует, то директория источник будет перемещена в директорию назначения.
Рассмотрим примеры.
Переименование файла
Переименование файла myfile1.dat в файл myfile2.dat:
mv myfile1.dat myfile2.dat
Переименование файла с указанием пути до файла:
mv /home/pingvinus/myfile1.dat /home/pingvinus/myfile2.dat
Переименование директории
Переименование директории /home/pingvinus/mydir1 в директорию /home/pingvinus/mydir2. Справедливо, если /home/pingvinus/mydir2 не существует.
mv /home/pingvinus/mydir1 /home/pingvinus/mydir2
Если /home/pingvinus/mydir2 существует, то, выполнив команду:
mv /home/pingvinus/mydir1 /home/pingvinus/mydir2
директория mydir1 будет перемещена внутрь директории /home/pingvinus/mydir2. То есть mydir1 будет в результате находиться по адресу /home/pingvinus/mydir2/mydir1.
Переименование и перемещение
Если в качестве файла назначения указан новый путь и новое имя файла, то файл будет перемещен и переименован. Например, следующая команда перемещает файл myfile1.dat в директорию /home/pingvinus/dir и переименовывает его в myfile2.dat:
mv /home/pingvinus/myfile1.dat /home/pingvinus/dir/myfile2.dat
Переименование командой rename
Команда rename служит для массового (пакетного) переименования файлов. Она позволяет выполнять замену определенных символов или частей имени файла и использованием Perl-регулярных выражений.
Если вдруг в вашем дистрибутиве нет команды rename, то ее можно установить, выполнив (выберите соответствующую команду для вашего дистрибутива):
sudo apt install rename
sudo yum install prename
yaourt -S perl-rename
Синтаксис команды rename:
rename опции ’s/старое_имя/новое_имя’ файлы
старое_имя — регулярное выражение или часть имени файла, которое нужно заменить на новое_имя.
новое_имя — задает результирующее имя файла (может быть регулярным выражением).
Основные опции:
-f — перезаписывать существующие файлы.
-n — вывести список файлов, которые будут переименованы и их новые имена, но не выполнять переименование.
-v — вывести список обработанных файлов.
Проще всего понять, как пользоваться данной командой, на примерах.
Изменение расширения файлов
Массово изменить расширение .html на .php у всех html-файлов.
rename 's/.html/.php/' *.html
По умолчанию rename не перезаписывает существующие файлы. Чтобы существующие файлы перезаписывались, используется опция -f:
rename -f 's/.html/.php/' *.html
Замена пробелов на подчеркивание
Заменить все символы пробелов в имени файлов на символ подчеркивания:
rename 'y/ /_/' *
Конвертация имен файлов в строчные буквы
rename 'y/A-Z/a-z/' *
Конвертация имен файлов в прописные буквы
rename 'y/a-z/A-Z/' *
Показать, что именно будет переименовано, но не переименовывать
Чтобы избежать ошибок при переименовании файлов, особенно при использовании сложных регулярных выражений, можно сначала вывести список того, что будет переименовано, но не запускать само переименование. Для этого служит опция -n.
Например, мы хотим изменить расширение у файлов с .jpeg на .jpg. Используем опцию -n, чтобы просто вывести какие файлы будут переименованы:
rename -n 's/.jpeg$/.jpg/' *
Полное описание команд mv и rename можно получить, выполнив в терминале команды:
man mv
man rename
Массовое переименование с использованием программ
Для массового переименования файлов можно воспользоваться программами:
- pyRenamer
- GPRename
Introduction
Linux provides several options for renaming files, including using the GUI and multiple dedicated terminal commands. This makes it relatively easy to rename individual files, but it can be challenging to rename multiple files at once.
In this tutorial, we will go over different commands you can use in the Linux terminal to rename files in Linux.
Prerequisites
- A system running a Linux distribution
- An account with sudo privileges
- Access to the terminal window/command line
- Access to a text editor, such as Vim or Nano
Rename Files with the mv Command
The Linux mv
(move) command is used to move files and directories from the terminal. It uses the following syntax:
mv [options] [source] [destination]
If you specify a directory as the destination when using the mv
command, the source file moves to that directory. If the destination is another file name, the mv
command renames the source file to that name instead.
Rename a Single File with the mv Command
Using the mv
command with its default syntax allows you to rename a single file:
mv [options] [current file name] [new file name]
For example, if we want to rename example1.txt into example2.txt, we would use:
mv example1.txt example2.txt
Since there is no output if the command is successful, we are using the ls
command to check if the name is changed:
ls -l
Rename Multiple Files with the mv Command
On its own, the mv
command renames a single file. However, combining it with other commands allows you to rename multiple files at the same time.
One method is to use the find
command to select multiple files with a similar name, then use the mv
command to rename them:
find . -depth -name "[current file name element]" -exec sh -c 'f="{}"; mv -- "$f" "${f%[current file name element]}[new file name element]"' ;
Using this syntax, the find
command defines an element of the current file name as the search parameter. Next, -exec
executes the mv
command on any files that match the search, changing their current filenames to the new one.
For instance, if we have example1.txt, example2.txt, and example3.txt and want to change the extension to .pdf:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' ;
Another method is to use the mv
command as a part of a <strong>for</strong>
loop in a bash script.
Using the same example, start by creating and opening a bash script file using a text editor such as Nano:
sudo nano rename_files.sh
Add the following lines to the script:
#!/bin/bash
for f in *.txt; do
mv -- "$f" "${f%.txt}.pdf"
done
In the script above:
- The first line instructs the script to search for all the files in the current directory ending with .txt.
- The second line uses the
mv
command on each file found to replace the .txt extension with .pdf. - The third line ends the loop segment.
Press Ctrl+X, then type Y and press Enter to save the changes to the script and exit.
Use the sh
command to execute the script:
sh rename_files.sh
Note: Learn how to compare two files using the diff command.
Rename File with the rename Command
The rename
command is used to rename multiple files or directories in Linux. It offers more features than the mv
command but can be more challenging to use since it requires basic knowledge of Perl expressions.
How to Install the rename Command
On many Linux distributions, the rename
command is not available by default. If your system is missing the rename
command, install it with:
- For Ubuntu and Debian, use
sudo apt install rename
- For CentOS and Fedora, use
sudo yum install prename
- For Arch Linux, use
sudo pacman -S
rename
rename Command Syntax and Options
There are three types of Perl regular expressions: match, substitute and translate. The rename
command uses substitute and translate expressions to change file and directory names.
Substitute expressions replace a part of the filename with a different string. They use the following syntax:
rename [options] 's/[filename element]/[replacement]/' [filename]
With this syntax, the command renames the file by replacing the first occurrence of the filename element with the replacement. In the command above:
rename
: Invokes the rename command.[options]
: Provides an optional argument that changes the way the command executes.s
: Indicates a substitute expression.[filename element]
: Specifies the part of the filename you want to replace.[replacement]
: Specifies a replacement for the part of the current filename.[filename]
: Defines the file you want to rename.
A translate expression translates one string of characters into another, character for character. This type of expression uses the following syntax:
rename [options] 'y/[string 1]/[string 2]/' [filename]
An example of a rename
command using a translate expression:
rename 'y/abc/xyz/'
In this example, every a character in the filename is replaced by an x, every b by a y, and every c by a z.
The rename command uses the following options:
-a
: Replaces all the occurrences of the filename element instead of just the first one.-f
: Forces an overwrite of existing files.-h
: Displays the help text.-i
: Displays a prompt before overwriting existing files.-l
: Replaces the last occurrence of the filename element instead of the first one.-n
: Performs a dry run, making no permanent changes. Best combined with the verbose output (-v
).-s
: Renames the target instead of the symlink.-v
: Shows a verbose version of the output.-V
: Displays the command version.
rename Command Examples
1. Change File Extension
Returning to our last example, to change the file extension from .txt to .pdf, use:
rename -v 's/.txt/.pdf/' *.txt
2. Replacing a Part of a Filename
Replacing a different part of the filename follows the same syntax. To rename example1.txt, example2.txt, and example3.txt to test1.txt, test2.txt, and text3.txt, use:
rename -v 's/example/test/' *.txt
3. Delete a Part of a Filename
The rename
option also allows you to delete a part of the filename by omitting the replacement part of the expression. For instance, if we want to shorten example into ex:
rename -v 's/ample//' *.txt
4. Rename Files with Similar Names
Another use for the rename
option is to rename files with similar names. For instance, if we want to rename files with example and sample in their name to test:
rename -v 's/(ex|s)ample/test/' *.txt
5. Rename Files Character-by-Character
The rename
command also allows you to use translate expressions to rename files on a character-by-character basis. For instance, if you want to rename multiple files named example file by replacing the blank space with an underscore (_):
rename -v 'y/ /_/' *.txt
6. Convert Lowercase Characters
To convert lowercase characters in filenames into uppercase characters, use:
rename -v 'y/a-z/A-Z/' *.txt
7. Convert Uppercase Characters
The reverse also works if we switch the order of the uppercase and lowercase characters in the expression:
rename -v 'y/A-Z/a-z/' *.TXT
Note: Be careful when changing the character case, as this also changes the file extension.
Conclusion
After reading this tutorial, you should be able to rename files using the mv
and rename
commands in Linux.
Learn more about using Linux commands in our Linux Commands Cheat Sheet.
Содержание
- Способ 1: pyRenamer
- Способ 2: Терминал
- Команда mv
- Команда rename
- Способ 3: Файловый менеджер
- Заключение
- Вопросы и ответы
В любой операционной системе, будь то Linux или Windows, может появиться необходимость переименовать файл. И если с данной операцией пользователи Windows справляются без лишних проблем, то на Линуксe они могут столкнуться со сложностями, ввиду незнания системы и обилия множества способов. В этой статье будут перечислены все возможные вариации того, как можно переименовать файл в Linux.
Читайте также:
Как создать или удалить файл в Linux
Как узнать версию дистрибутива Linux
Способ 1: pyRenamer
К сожалению, программное обеспечение pyRenamer не поставляется в стандартном наборе предустановок дистрибутива. Однако, как и все в Linux, его можно скачать и установить из официального репозитория. Команда для загрузки и установки следующая:
sudo apt install pyrenamer
После ее ввода укажите пароль и нажмите Enter. Далее необходимо будет подтвердить выполняемые действия. Для этого введите букву «Д» и нажмите снова Enter. Останется лишь подождать загрузки и установки (не закрывайте «Терминал» до завершения процесса).
После установки программу можно будет запустить, предварительно совершив поиск по системе с ее названием.
Основным отличием pyRenamer от менеджера файлов является то, что приложение способно взаимодействовать со множеством файлов одновременно. Она отлично подойдет в тех случаях, когда нужно поменять название сразу в нескольких документах, убрав какую-то часть или заменив ее на другую.
Давайте рассмотрим работу по переименованию файлов в программе:
- Открыв программу, вам необходимо проложить путь к директории, где находятся файлы, которые нужно переименовать. Делается это в левом рабочем окне (1). После определения директории в правом рабочем окне (2) будут показаны все файлы, находящиеся в ней.
- Далее необходимо перейти во вкладку «Substitutions».
- В этой вкладке вам нужно поставить галочку рядом с пунктом «Replace», чтобы поля для ввода стали активными.
- Теперь можно приступать к переименованию файлов в выбранной директории. Рассмотрим на примере четырех файлов «Безымянный документ» с порядковым числом. Допустим, нам необходимо заменить слова «Безымянный документ» на слово «Файл». Для этого нужно в первое поле ввести заменяемую часть имени файла, в данном случае «Безымянный документ», а во второе фразу, которая будет заменять — «Файл».
- Чтобы просмотреть, что получится в итоге, можно нажать кнопку «Preview» (1). Все изменения отобразятся в графе «Renamed file name» в правом рабочем окне.
- Если изменения вас устраивают, вы можете нажать кнопку «Rename», чтобы применить их к выбранным файлам.
После переименования можно спокойно закрывать программу и открывать файловый менеджер, чтобы проверить изменения.
На самом деле с помощью pyRenamer можно выполнить намного больше действий с файлами. Не только заменить одну часть имени на другую, но и, используя шаблоны во вкладке «Patterns», задать переменные, и, управляя ими, видоизменять названия файлов как угодно. Но подробно инструкцию нет смысла расписывать, так как при наведении курсора на активные поля высветится подсказка.
Способ 2: Терминал
К сожалению, не всегда получается переименовать файл с помощью специальных программ с графическим интерфейсом. Порою может возникнуть ошибка или что-то подобное, мешающее выполнению данной задачи. Но в Линуксe есть куда более одного способа выполнения поставленной задачи, поэтому переходим прямиком в «Терминал».
Команда mv
Команда mv в Линуксе отвечает за перемещение файлов из одной директории в другую. Но по своей сути перемещение файла схоже с переименованием. Так, используя эту команду, если переместить файл в ту же папку, в которой он находится, при этом задав новое имя, получится его переименовать.
Теперь давайте подробно разберемся с командой mv.
Синтаксис и опции команды mv
Синтаксис выглядит следующим образом:
mv опция оригинальное_имя_файла имя_файла_после_переименования
Чтобы пользоваться всеми возможностями данной команды, необходимо изучить ее опции:
- -i — запрашивать разрешении при замене существующих файлов;
- -f — заменять существующий файл без разрешения;
- -n — запретить замену существующего файла;
- -u — разрешить замену файла, если в нем присутствуют изменения;
- -v — показать все обработанные файлы (список).
После того как мы разобрались со всеми особенностями команды mv, можно приступать непосредственно к самому процессу переименования.
Примеры использования команды mv
Сейчас будет рассмотрена ситуация, когда в папке «Документы» находится файл с именем «Старый документ», наша задача переименовать его в «Новый документ», используя для этого команду mv в «Терминале». Для этого нам необходимо вписать:
mv -v "Старый документ" "Новый документ"
Примечание: чтобы операция прошла успешно, необходимо нужную папку открыть в «Терминале» и только после этого проводить все манипуляции. Открыть папку в «Терминале» можно при помощи команды cd.
Пример:
Как можно видеть на изображении, нужный нам файл получил новое имя. Обратите внимание, что в «Терминале» указана опция «-v», которая строчкой ниже вывела подробный отчет о выполненной операции.
Также, используя команду mv, можно не только переименовать файл, но и попутно переместить его в другую папку. Как говорилось выше, данная команда именно для этого и нужна. Чтобы это сделать надо, помимо указания имени файла, прописать путь к нему.
Допустим, вы хотите из папки «Документы» переместить файл «Старый документ» в папку «Видео» попутно переименовав его в «Новый документ». Вот как будет выглядеть команда:
mv -v /home/user/Документы/"Старый документ" /home/user/Видео/"Новый документ"
Важно: если имя файла состоит из двух и более слов, его необходимо заключать в кавычки.
Пример:
Примечание: если к папке, в которую вы собираетесь переместить файл, попутно переименовав его, у вас нет прав доступа, необходимо выполнять команду через суперпользователя, прописав в начале «super su» и введя пароль.
Команда rename
Команда mv хороша, когда необходимо переименовать один файл. И, безусловно, замены ей в этом не найти — она лучшая. Однако, если необходимо переименовать множество файлов или же заменить лишь часть имени, то фаворитом становится команда rename.
Синтаксис и опции команды rename
Как и с прошлой командой, для начала разберемся с синтаксисом rename. Выглядит он следующим образом:
rename опция 's/старое_имя_файла/новое_имя_файла/' имя_файла
Как можно заметить, синтаксис намного сложнее, чем у команды mv, однако он позволяет выполнять больше действий с файлом.
Теперь давайте рассмотрим опции, они следующие:
- -v — показать обработанные файлы;
- -n — предварительный просмотр изменений;
- -f — принудительно переименовать все файлы.
Теперь давайте рассмотрим наглядные примеры данной команды.
Примеры использования команды rename
Допустим, в директории «Документы» у нас есть множество файлов с названием «Старый документ num», где num — это порядковый номер. Наша задача, используя команду rename, во всех этих файлах изменить слово «Старый» на «Новый». Для этого нам необходимо выполнить следующую команду:
rename -v 's/Старый/Новый/' *
где, «*» — все файлы в указанной директории.
Примечание: если вы хотите провести изменение в одном файле, то вместо «*» пропишите его имя. Не забывайте, если имя состоит из двух и более слов, то его необходимо брать в кавычки.
Пример:
Примечание: с помощью данной команды можно запросто изменить расширения файлов, указав изначально старое расширения, записав его, например, в виде «.txt», а затем новое, например, «.html».
С помощью команды rename также можно менять регистр текста имени. Например, мы хотим файлы с именем «NEW FILE (num)» переименовать в «new file (num)». Для этого нужно прописать следующую команду:
rename -v 'y/A-Z/a-z/' *
Пример:
Примечание: если необходимо поменять регистр в имени файлов на русском, то используйте команду «rename -v ‘y/А-Я/а-я/’ *».
Способ 3: Файловый менеджер
К сожалению, в «Терминале» не всякий пользователь сможет разобраться, поэтому будет разумно рассмотреть способ переименования файлов с использованием графического интерфейса.
Взаимодействие с файлами в Linux хорошо осуществлять при помощи менеджера файлов, будь то Nautilus, Dolphin или любой другой (зависит от дистрибутива Linux). Он позволяет визуализировать не только файлы, но и директории, а также каталоги, выстраивая их иерархию в том виде, который более понятен неопытному пользователю. В таких менеджерах легко сможет сориентироваться даже новичок, который только-только установил себе Linux.
Переименовать файл при помощи файлового менеджера просто:
- Для начала вам необходимо открыть сам менеджер и перейти в ту директорию, где расположен файл, нуждающийся в переименовании.
- Теперь необходимо навести курсор на него и нажать левую кнопку мыши (ЛКМ), чтобы выделить. После чего клавишу F2 или правую клавишу мыши и выбрать пункт “Переименовать”.
- Под файлом появится форма для заполнения, а само имя файла станет выделенным. Вам остается лишь ввести необходимое название и нажать клавишу Enter для подтверждения изменений.
Вот так просто и быстро можно переименовать файл в Линуксe. Представленная инструкция работает во всех файловых менеджерах различных дистрибутивов, однако могут быть различия в наименовании каких-то элементов интерфейса или в их отображении, но общий смысл действий остается одинаковым.
Заключение
По итогу можно сказать, что способов переименовать файлы в Linux много. Все они в достаточной мере отличаются друг от друга и имеют важность в различных ситуациях. Например, если вам необходимо переименовывать одиночные файлы, то лучше использовать файловый менеджер системы или же команду mv. А в случае с частичным или множественным переименовыванием отлично подойдет программа pyRenamer или команда rename. Вам осталось лишь одно — определиться, каким способом пользоваться.
В операционной системе Linux разобраться порой не так просто, как в Windows. Да, внешним исполнением и расположением элементов она проще – не зря же ей пользуется большинство разработчиков, но порой одно желание переименовать файл может превратиться в полноценное захватывающее путешествие. Я расскажу о нескольких способах, с помощью которых можно переименовать файлы в операционной системе Linux.
В ОС Linux есть несколько действенных способов переименовать файл – через файловый менеджер, командой в командной строке или же сторонней программой. В Linux есть множество разных версий, я же описываю действия на Ubuntu 19.04. Начну с самого простого метода, а к следующим можно переходить в том случае, если первый не сработал.
С помощью файлового менеджера
Файловый менеджер операционной системы Linux очень прост в плане графического интерфейса – все элементы четко упорядочены, ничего лишнего. А переименовать через него какой-либо файл можно следующим образом.
- Открываю приложение и перехожу к папке, в которой расположен нужный файл.
- Навожу курсор на иконку и нажимаю по ней правой кнопкой мыши для вызова контекстного меню. В небольшом списке элементов нахожу пункт «Переименовать» и жму по нему. Или просто использую клавишу F2, но перед этим предварительно кликнув по файлу.
Самый простой и быстрый способ переименовать что-либо – воспользоваться файловым менеджером
- Под иконкой появится поле для заполнения. Ввожу название, которое мне нужно, после чего жму по клавише Enter или зеленой кнопке «Переименовать».
Ввожу будущее название файла и кликаю по зеленой кнопке
С помощью терминала
Если переименовать файл вышеуказанным способом не получается (нет доступа или что-то иное), стоит попробовать задействовать Терминал. Это аналог командной строки в ОС Windows, причем и выглядит схоже, только в Linux она используется куда чаще.
Открыть данную утилиту можно двумя способами – нажать на комбинацию клавиш Ctrl + Alt + T или выбрать соответствующую иконку в списке приложений, в папке «Утилиты».
«Терминал» можно найти в списке установленных приложений
Кроме того, чтобы переименовать файлы можно использовать две команды.
Команда mv
Эта команда вообще отвечает за перемещение файлов в директориях компьютера. Но ее можно использовать так, чтобы процесс перемещения прошел в ту же самую папку, но на пути название файла было изменено. Я не буду отходить от темы и подробно вникать в синтаксис и опции команды. Затрону лишь то, что нужно нам – остальные возможности можно рассмотреть позже.
Чтобы переименование файла прошло успешно, для начала в «Терминале» потребуется открыть папку, в которой располагается файл. Даю запрос, у меня он выглядит следующим образом:
«cd /home/ayko/Изображения».
У команды mv есть одна опция «-v» – она показывает все файлы в виде списка. А вот чтобы переименовать один из них, стоит ввести следующую команду:
mv -v «Снимок.png» «Image.png»
Да-да, про форматы файлов тоже забывать не стоит.
Для начала надо открыть папку, и только потом начать переименование – логично, правда? 🙂
Проверяю, получилось ли, и обнаруживаю переименованный файл в папке.
Результат проделанной работы – файл успешно переименован
Так как команда -v отвечает за перемещение, то во время переименования можно воспользоваться ее прямым назначением. Приведу пример – перемещу файл из папки «Изображения» в «Документы», попутно проведу процедуру переименования. И в таком случае запрос будет выглядеть следующим образом: mv -v /home/ayko/Изображения/»Снимок.png» /home/ayko/Документы/»Image.png»
И переименовали файл, и переместили его в другую папку
Команда rename
Команда mv подходит только в том случае, если необходимо переименовать только один файл, так еще и попутно переместить его в другую директорию. А если надо переименовать группу файлов или заменить лишь часть имени, рекомендуется воспользоваться именно командой rename.
Но есть одно НО – она может быть изначально не установлена в системе, поэтому в таком случае потребуется ввести команду «sudo apt install rename». Я так и сделала, после этого последовало скачивание данных из сети, установка, и все это отображалось в окне «Терминала».
Если что-то не работает, для начала надо это что-то установить
Воспользуюсь я той же опцией, что использовала при задаче команды mv. В моем примере в папке Изображения есть 8 файлов, которые мне необходимо переименовать.
Вот эти файлы я собираюсь переименовывать
Запускаю утилиту «Терминал» и открываю запрос, ранее указанный мной для открытия папки – «cd /home/ayko/Изображения».
В этой директории во всех изображениях мне надо поменять слово «Снимок» на «Image». Для этого я выдаю следующий запрос:
rename -v ‘s/Снимок/Image/’ *
Открыла папку, ввела команду, а дальше утилита все переименовала так, как нужно
pyRenamer и GPRename
К сожалению, для версии, в которой я работаю, а именно Ubuntu 2019 года, эти программы не оптимизированы. То есть, я не найду репака даже на официальных сайтах, что уже говорить о «Менеджере приложений». Приводить примеры я буду в Ubuntu 16.04 – как понятно из названия, это версия выпуска апреля 2016 года. Вполне допустимо, что в других версиях сборки обе программы будут, но основную информацию я все же укажу.
Открываю менеджер приложений, ввожу запрос «pyRenamer», после чего устанавливаю программу.
Устанавливаю утилиту из «Менеджера приложений»
В итоге в боковой панели у меня появится окошко, и при нажатии на него выходит нужная мне утилита.
Вот так выглядит в боковой панели иконка приложения
Слева в окне отображается дерево файловой системы, а в центральной части – файлы, расположенные в выбранной папке. Ниже уже – панели управления, в которой и проводится настройка. Мне понадобится перейти во вкладку «Images», так как я переименовываю именно изображения. Ввожу во вторую строку будущее имя файла, нажимаю на кнопку «Preview». Рядом с прежним названием появится пример нового, и уже в итоге я жму на кнопку «Rename».
Перехожу ко вкладке «Images», ввожу будущее название файла и завершаю процедуру
В приложении GPRename интерфейс и действия в целом схожи. Только если в рассмотренной мной утилите есть хотя бы пара элементов на русском, то в данном случае программа полностью на английском языке.
Вот так выглядит окно программы GPRename
Заключение
Переименование файлов в операционной системе Linux – несложный процесс и много времени отнимать он не должен. По крайней мере, если пользователь не полез в системные директории, чего делать без надобности настоятельно не рекомендую. Если это группа файлов, лучше просто активировать команду rename и воспользоваться ею. В остальном можно действовать файловый менеджер или «Терминал», к сторонним приложениям прибегать приходится в крайнем случае.
Post Views: 1 604
Developed in the early 1990s, Linux has remained a popular operating system for both personal use and commercial servers. Today, there are over 600 Linux distributions (versions) available, though only a handful of them remain in common use. Based on Unix, the Linux system is prized for its portability, reliability, and stability. There are many individuals (primarily industry professionals) who prefer using Linux over any other operating system.
That said, Linux does require some advanced knowledge to use. While today most Linux distributions have a GUI (graphical user interface), many don’t. Working with Linux requires prior knowledge because most commands are given through a command-line text.
If you’ve worked in DOS or have programmed in C, you will know how to use a command line. But with Linux, it’s all about knowing individual commands — including the commands to rename and move files.
Today, we’re going to take a look at how to rename a file in Linux. We’ll look at the rename tools that Linux offers, renaming a single file, how to rename files and directories, and renaming multiple files through batch rename.
How to rename a single file in Linux
If we need to rename a single file in Linux, we have two options: we can create a copy of the file with a new name (and delete the old one) or we can rename the file by moving it (with the MV command).
Renaming a file by copying and deleting it
Linux users copy a file by using the “cp” command. When you copy a file, you give the source files and rename the files.
$ cp old_file new_file
As an example, if we were to rename “august.png” to “september.png”:
$ cp august.png september.png
This will create a copy of the file with a new name. But now you’ll have two copies. You’ll resolve this by deleting the old file. You delete with “rm.”
$ rm august.png
You may be wondering why this is so cumbersome compared to Windows, where you’d just rename a file. Linux has a lot of power, but it manages that power by putting it in the user’s hands. Linux users will perform more operations incrementally, but they have complete control over how those operations are performed.
This gives way to another issue: We could have named that second file september.jpg or september.doc. And then the file would no longer work! Linux provides a lot of power and a lot of freedom.
Renaming a file by moving it
You may be relieved to know that there is an easier method. But it’s a counterintuitive one. You can rename a file by “moving it” to a new file name.
$ mv august.png september.png
This actually does what you would think of as a “rename” command and in a single step. But it should be noted that it’s also the general “move” command. So, you are moving the file at the same time. If you move it to a different directory, it will be moved as well as renamed.
As with the cp command, you have to be aware of file extensions. For example, say we introduced a typo and typed:
$ mv august.png september.pg
That action would break our file.
File extensions and renaming
For the most part, Windows protects you from changing the extension of a file. When you click a file in Windows to rename it, it only highlights the actual name, not the extension. You need to do a little work to change the extension of a file.
Linux doesn’t protect you. The extension is part of the file name and can be changed at any time. For that reason, you should be very aware of file extensions. .JPEG is not necessarily the same as .JPG, even if they both denote “JPG” files.
If a file is no longer working after you’ve moved, renamed, or copied it, it’s very likely that it’s because of an error with the file extension.
How to rename multiple files in Linux
What if you wanted to rename multiple files in Linux? This is where we start to see the advantages of using a command-line system.
Let’s say we did make a mistake. We changed everything to JPGs, but instead, they need to be PNGs. We can do this like so:
$ mv *.JPG *.PNG
What this does is it uses a wildcard operator (*) to select any file that ends with JPG and changes that to a PNG. We had better know what we’re doing, though, because if there were any actual JPGs, they’re broken now.
Wildcards are one of the simplest forms of regular expressions. If we had wanted to rename the files in Windows, we would have had to click on them one by one. To rename the files in Linux, we can just use an expression to highlight them all. For that reason, power users in Linux can perform operations very quickly.
Renaming a directory in Linux
One of the quirks of Linux and Unix is that not much changes whether you’re using files or directories. A directory is more or less a blank file that contains other files. If we had a directory called “2021” and we wanted to rename it to “2022,” we would do this:
$ mv 2020 2021
It’s as simple as that. Existing directories are treated like existing files that do not have a file extension by the MV command.
Rename a file while moving it in Linux
Earlier, we noted that we are using the MV command to rename files and that we could also move the file to a different directory if we so chose.
Now let’s say we want to rename august.png to september.png and also move it into the 2022 directory.
$ mv august.png 2022/september.png
As again, both the directory and the file name (and its extension) are just pointers to where data is. This remains consistent throughout Linux.
Using flags (options) for your operations
Linux makes it possible to use something called “flags,” or options, with its commands. This controls how the command is performed.
Two commands you may want to know are -i and -v.
- -i. This is the interactive option, and it makes it possible for you to “interrupt” the sequence to confirm actions.
- -v. This is the verbose option, and it makes it possible for you to see everything that happens with the command as it happens.
Both of these option flags can be helpful when using the MV command in Linux.
Using the interactive renaming function in Linux
We’ve noted a couple of times that it’s possible to make large, potentially irrevocable mistakes in Linux. But there’s also a way to get around this. If you add the “-i” option with the MV command, you’ll be prompted before anything is done.
Let’s say we type:
$ mv -i august.jpg september.png
But the problem is, we’ve already created september.png. It already exists! The “interactive” function will let us know we’re about to overwrite an existing file. We can then type “Y” or “N” to either confirm the action or deny it.
If we knew that it was going to be overwritten anyway, we may be fine with it. But otherwise, we might want to know that there’s another file in danger.
Using the verbose option to track what’s happening
In addition to interactively interrupting your commands, you may also want to just know what operations are occurring. With Linux, you can always use the -v or -verbose option.
$ mv -v august.png september.png
This will tell you exactly what it has done to the source files and the new files. And you can also:
$ mv -v -i august.png september.png
This will tell you about all the operations and also allow you to interrupt them. Whenever you’re using a new command, consider using -v for verbose. The -v flag should work for nearly any command.
Mass moving and renaming files in Linux
Sometimes you need to move and rename a large number of files in Linux. Consider that you might have an entire directory of files that have to be either changed or moved. This could happen if you installed something into the wrong directory.
For this, Linux has another command altogether: MMV. MMV can be used to move, link, and append files. It’s a non-destructive method of doing so; it will try to identify any potential errors or collisions.
This is particularly valuable because you don’t want to accidentally ruin a lot of files at once.
$ mmv *.png *.jpg
The above would be another way of changing all PNGs to JPGs, in the event that for instance, a large number of files had the wrong extension. This could happen if you had copied the original file over incorrectly.
But you’ll notice that we could have done this with the MV command, too. The only difference is that MMV is a more careful way of doing this.
If you wanted to mass copy a lot of files, you could even copy over the entire directory:
$ cp 2021 2022
And that would copy 2021 to 2022 while still leaving 2021. Copying is less dangerous than moving because copying doesn’t inherently delete the original files. Moving does. This is one reason why when renaming a file, we looked at the CP function before the MV function — there is less that can go wrong with the operation because it’s not inherently destructive.
Installing rename in Linux
At this point, you might be thinking “Why can’t I just rename?” Actually, you can. There is a “rename” command in Linux, but you would need to install it.
On your administrative account for Ubuntu or Debian:
$ sudo apt install rename
For Fedora or CentOS:
$ sudo yum install rename
(If you have a different distribution, look up your installation syntax.)
This will install the “rename” package. After you install rename, you’ll be able to use complex regular expressions to rename your files.
Complex regular expressions are a topic in and of themselves. We saw that * can be used as a wildcard. But with regular expressions, we can also select things like “any file that starts with letters but ends with numbers” or “any file that has 59 in it.” Regular expressions can be used to identify email addresses or other patterns — they are very powerful but take some practice.
The rename command will not operate much differently from MV, MVV, or even CP. The difference is that you’ll have a dedicated function called “rename” that you can use. There are many function packages for different Linux distributions that you can install. If you’re trying to complete an operation and you can’t find it in vanilla Linux, consider looking for a package.
Getting started with Linux
Linux has an internal manual ($ man) that can be used to look up commands. To look up more information about the move command in Linux, you can also always type in:
$ man move
Or look up the $ man entries for anything else.
Linux requires a lot of memorization. For the most part, you just need to know what’s possible in the system. Once you know what’s possible, you should be able to reference the manual to figure out how.
But you should always remember that Linux does what it’s told — there are fewer safeguards with the Linux system. While Windows might alert you that you’re overwriting a file, Linux isn’t likely to alert you unless you specifically ask that it does. If you’re just learning Linux now, a great way to do so is through a Linux bootcamp or workshop. There are so many distributions of Linux, you’ll also want to decide which distribution you want to use first. Check out our guide to finding the best Linux distro!
Developed in the early 1990s, Linux has remained a popular operating system for both personal use and commercial servers. Today, there are over 600 Linux distributions (versions) available, though only a handful of them remain in common use. Based on Unix, the Linux system is prized for its portability, reliability, and stability. There are many individuals (primarily industry professionals) who prefer using Linux over any other operating system.
That said, Linux does require some advanced knowledge to use. While today most Linux distributions have a GUI (graphical user interface), many don’t. Working with Linux requires prior knowledge because most commands are given through a command-line text.
If you’ve worked in DOS or have programmed in C, you will know how to use a command line. But with Linux, it’s all about knowing individual commands — including the commands to rename and move files.
Today, we’re going to take a look at how to rename a file in Linux. We’ll look at the rename tools that Linux offers, renaming a single file, how to rename files and directories, and renaming multiple files through batch rename.
How to rename a single file in Linux
If we need to rename a single file in Linux, we have two options: we can create a copy of the file with a new name (and delete the old one) or we can rename the file by moving it (with the MV command).
Renaming a file by copying and deleting it
Linux users copy a file by using the “cp” command. When you copy a file, you give the source files and rename the files.
$ cp old_file new_file
As an example, if we were to rename “august.png” to “september.png”:
$ cp august.png september.png
This will create a copy of the file with a new name. But now you’ll have two copies. You’ll resolve this by deleting the old file. You delete with “rm.”
$ rm august.png
You may be wondering why this is so cumbersome compared to Windows, where you’d just rename a file. Linux has a lot of power, but it manages that power by putting it in the user’s hands. Linux users will perform more operations incrementally, but they have complete control over how those operations are performed.
This gives way to another issue: We could have named that second file september.jpg or september.doc. And then the file would no longer work! Linux provides a lot of power and a lot of freedom.
Renaming a file by moving it
You may be relieved to know that there is an easier method. But it’s a counterintuitive one. You can rename a file by “moving it” to a new file name.
$ mv august.png september.png
This actually does what you would think of as a “rename” command and in a single step. But it should be noted that it’s also the general “move” command. So, you are moving the file at the same time. If you move it to a different directory, it will be moved as well as renamed.
As with the cp command, you have to be aware of file extensions. For example, say we introduced a typo and typed:
$ mv august.png september.pg
That action would break our file.
File extensions and renaming
For the most part, Windows protects you from changing the extension of a file. When you click a file in Windows to rename it, it only highlights the actual name, not the extension. You need to do a little work to change the extension of a file.
Linux doesn’t protect you. The extension is part of the file name and can be changed at any time. For that reason, you should be very aware of file extensions. .JPEG is not necessarily the same as .JPG, even if they both denote “JPG” files.
If a file is no longer working after you’ve moved, renamed, or copied it, it’s very likely that it’s because of an error with the file extension.
How to rename multiple files in Linux
What if you wanted to rename multiple files in Linux? This is where we start to see the advantages of using a command-line system.
Let’s say we did make a mistake. We changed everything to JPGs, but instead, they need to be PNGs. We can do this like so:
$ mv *.JPG *.PNG
What this does is it uses a wildcard operator (*) to select any file that ends with JPG and changes that to a PNG. We had better know what we’re doing, though, because if there were any actual JPGs, they’re broken now.
Wildcards are one of the simplest forms of regular expressions. If we had wanted to rename the files in Windows, we would have had to click on them one by one. To rename the files in Linux, we can just use an expression to highlight them all. For that reason, power users in Linux can perform operations very quickly.
Renaming a directory in Linux
One of the quirks of Linux and Unix is that not much changes whether you’re using files or directories. A directory is more or less a blank file that contains other files. If we had a directory called “2021” and we wanted to rename it to “2022,” we would do this:
$ mv 2020 2021
It’s as simple as that. Existing directories are treated like existing files that do not have a file extension by the MV command.
Rename a file while moving it in Linux
Earlier, we noted that we are using the MV command to rename files and that we could also move the file to a different directory if we so chose.
Now let’s say we want to rename august.png to september.png and also move it into the 2022 directory.
$ mv august.png 2022/september.png
As again, both the directory and the file name (and its extension) are just pointers to where data is. This remains consistent throughout Linux.
Using flags (options) for your operations
Linux makes it possible to use something called “flags,” or options, with its commands. This controls how the command is performed.
Two commands you may want to know are -i and -v.
- -i. This is the interactive option, and it makes it possible for you to “interrupt” the sequence to confirm actions.
- -v. This is the verbose option, and it makes it possible for you to see everything that happens with the command as it happens.
Both of these option flags can be helpful when using the MV command in Linux.
Using the interactive renaming function in Linux
We’ve noted a couple of times that it’s possible to make large, potentially irrevocable mistakes in Linux. But there’s also a way to get around this. If you add the “-i” option with the MV command, you’ll be prompted before anything is done.
Let’s say we type:
$ mv -i august.jpg september.png
But the problem is, we’ve already created september.png. It already exists! The “interactive” function will let us know we’re about to overwrite an existing file. We can then type “Y” or “N” to either confirm the action or deny it.
If we knew that it was going to be overwritten anyway, we may be fine with it. But otherwise, we might want to know that there’s another file in danger.
Using the verbose option to track what’s happening
In addition to interactively interrupting your commands, you may also want to just know what operations are occurring. With Linux, you can always use the -v or -verbose option.
$ mv -v august.png september.png
This will tell you exactly what it has done to the source files and the new files. And you can also:
$ mv -v -i august.png september.png
This will tell you about all the operations and also allow you to interrupt them. Whenever you’re using a new command, consider using -v for verbose. The -v flag should work for nearly any command.
Mass moving and renaming files in Linux
Sometimes you need to move and rename a large number of files in Linux. Consider that you might have an entire directory of files that have to be either changed or moved. This could happen if you installed something into the wrong directory.
For this, Linux has another command altogether: MMV. MMV can be used to move, link, and append files. It’s a non-destructive method of doing so; it will try to identify any potential errors or collisions.
This is particularly valuable because you don’t want to accidentally ruin a lot of files at once.
$ mmv *.png *.jpg
The above would be another way of changing all PNGs to JPGs, in the event that for instance, a large number of files had the wrong extension. This could happen if you had copied the original file over incorrectly.
But you’ll notice that we could have done this with the MV command, too. The only difference is that MMV is a more careful way of doing this.
If you wanted to mass copy a lot of files, you could even copy over the entire directory:
$ cp 2021 2022
And that would copy 2021 to 2022 while still leaving 2021. Copying is less dangerous than moving because copying doesn’t inherently delete the original files. Moving does. This is one reason why when renaming a file, we looked at the CP function before the MV function — there is less that can go wrong with the operation because it’s not inherently destructive.
Installing rename in Linux
At this point, you might be thinking “Why can’t I just rename?” Actually, you can. There is a “rename” command in Linux, but you would need to install it.
On your administrative account for Ubuntu or Debian:
$ sudo apt install rename
For Fedora or CentOS:
$ sudo yum install rename
(If you have a different distribution, look up your installation syntax.)
This will install the “rename” package. After you install rename, you’ll be able to use complex regular expressions to rename your files.
Complex regular expressions are a topic in and of themselves. We saw that * can be used as a wildcard. But with regular expressions, we can also select things like “any file that starts with letters but ends with numbers” or “any file that has 59 in it.” Regular expressions can be used to identify email addresses or other patterns — they are very powerful but take some practice.
The rename command will not operate much differently from MV, MVV, or even CP. The difference is that you’ll have a dedicated function called “rename” that you can use. There are many function packages for different Linux distributions that you can install. If you’re trying to complete an operation and you can’t find it in vanilla Linux, consider looking for a package.
Getting started with Linux
Linux has an internal manual ($ man) that can be used to look up commands. To look up more information about the move command in Linux, you can also always type in:
$ man move
Or look up the $ man entries for anything else.
Linux requires a lot of memorization. For the most part, you just need to know what’s possible in the system. Once you know what’s possible, you should be able to reference the manual to figure out how.
But you should always remember that Linux does what it’s told — there are fewer safeguards with the Linux system. While Windows might alert you that you’re overwriting a file, Linux isn’t likely to alert you unless you specifically ask that it does. If you’re just learning Linux now, a great way to do so is through a Linux bootcamp or workshop. There are so many distributions of Linux, you’ll also want to decide which distribution you want to use first. Check out our guide to finding the best Linux distro!
В этом уроке мы покажем вам , как использовать mv и rename команды для переименования файлов и каталогов.
Переименование файлов и каталогов является одной из самых основных задач, которые вам часто приходится выполнять в системе Linux. Вы можете переименовывать файлы, используя файловый менеджер с графическим интерфейсом или через терминал командной строки.
Переименовать один файл легко, но переименование нескольких файлов одновременно может быть проблемой, особенно для пользователей, которые являются новичками в Linux.
Переименование файлов с помощью mv
команды
mv
Команда ( не хватает хода) используется для переименования или перемещения файлов из одного места в другое. Синтаксис mv
команды следующий:
mv [OPTIONS] source destination
source
Может быть один или несколько файлов или каталогов и destination
может быть один файл или каталог.
- Если вы указываете несколько файлов как
source
,destination
должен быть каталог. В этом случаеsource
файлы перемещаются в целевой каталог. - Если вы указываете один файл как
source
, аdestination
целью является существующий каталог, то файл перемещается в указанный каталог. - Чтобы переименовать файл, вам нужно указать один файл как
source
и один файл какdestination
цель.
Например, чтобы переименовать файл так, file1.txt
как file2.txt
вы запустите:
mv file1.txt file2.txt
Переименование нескольких файлов с помощью mv
команды
Команда mv
может переименовывать только один файл за раз, но ее можно использовать вместе с другими командами, такими как find
или внутри bash for
или while
циклов, для переименования нескольких файлов.
В следующем примере показано, как использовать цикл Bash for для переименования всех .html
файлов в текущем каталоге, изменив .html
расширение на .php
.
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
Давайте проанализируем код построчно:
- Первая строка создает
for
цикл и перебирает список всех файлов, окантованных.html
. - Вторая строка применяется к каждому элементу списка и перемещает файл в новый, заменяя его
.html
на.php
. Часть${file%.html}
использует расширение параметра оболочки, чтобы удалить.html
часть из имени файла. done
указывает на конец сегмента цикла.
Вот пример использования mv
в сочетании с find
для достижения того же, что и выше:
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;
Команда find
передает все файлы, оканчивающиеся .html
в текущем каталоге, по mv
одному, используя -exec
опцию. Строка {}
— это имя файла, обрабатываемого в данный момент.
Как видно из приведенных выше примеров, переименование нескольких файлов с помощью mv
команды — непростая задача, поскольку требует хорошего знания сценариев Bash.
Переименование файлов с помощью rename
команды
Команда rename
используется для переименования нескольких файлов. Эта команда более сложна, чем mv
она требует базовых знаний о регулярных выражениях.
Существует две версии rename
команды с разным синтаксисом. В этом уроке мы будем использовать версию команды Perl rename
. Если у вас не установлена эта версия в вашей системе, вы можете легко установить ее, используя менеджер пакетов вашего дистрибутива.
-
Установить
rename
на Ubuntu и Debiansudo apt install rename
-
Установить
rename
на CentOS и Fedorasudo yum install prename
-
Установить
rename
на Arch Linuxyay perl-rename ## or yaourt -S perl-rename
Синтаксис rename
команды следующий:
rename [OPTIONS] perlexpr files
Команда rename
переименует в files
соответствии с указанным perlexpr
регулярным выражением. Вы можете прочитать больше о регулярных выражениях perl здесь .
Следующий пример изменит все файлы с расширением .html
на .php
:
rename 's/.html/.php/' *.html
Вы можете использовать -n
опцию для печати имен файлов, которые будут переименованы, без переименования их.
rename -n 's/.html/.php/' *.html
Вывод будет выглядеть примерно так:
rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)
По умолчанию rename
команда не перезаписывает существующие файлы. Передайте -f
опцию, чтобы разрешить перезаписывать существующие файлы:
rename -f 's/.html/.php/' *.html
Ниже приведены еще несколько распространенных примеров использования rename
команды:
-
Заменить пробелы в именах файлов подчеркиванием
rename 'y/ /_/' *
-
Преобразование имен файлов в нижний регистр
rename 'y/A-Z/a-z/' *
-
Преобразовать имена файлов в верхний регистр
rename 'y/a-z/A-Z/' *
Вывод
Мы показали вам , как использовать mv
и rename
команды для переименования файлов.
Конечно, есть другие команды для переименования файлов в Linux, такие как mmv
. Новые пользователи Linux, которых пугает командная строка, могут использовать инструменты пакетного переименования GUI, такие как Métamorphose .