- Переименование файлов в Linux
- Переименование командой mv
- Переименование файла
- Переименование директории
- Переименование и перемещение
- Переименование командой rename
- Изменение расширения файлов
- Замена пробелов на подчеркивание
- Конвертация имен файлов в строчные буквы
- Конвертация имен файлов в прописные буквы
- Показать, что именно будет переименовано, но не переименовывать
- Массовое переименование с использованием программ
- How to Easily Rename Files in Linux
- Renaming Files with “mv” Command
- Using the “rename” Command
- Métamorphose2
- pyRenamer – The Easy Way Out
- Как переименовать файл Linux
- Как переименовать файл в Linux с помощью mv
- Переименование файлов Linux с помощью rename
- Переименование файлов в pyRenamer
- Выводы
Переименование файлов в 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 можно получить, выполнив в терминале команды:
Массовое переименование с использованием программ
Для массового переименования файлов можно воспользоваться программами:
How to Easily Rename Files in Linux
Renaming files is not a particularly advanced operation; as long as it’s done on a small number of files, it usually doesn’t require special tools. However, when there’s an entire folder of photos from last year’s vacation waiting to be renamed, it may be wise to consider some timesaving tricks or apps.
There are two general approaches when you rename files in Linux: via the command-line interface or a standalone application. Linux users already know how powerful the CLI can be, so it shouldn’t be surprising that there are several commands for file renaming.
Renaming Files with “mv” Command
A simple way to rename files in Linux is with the mv command (shortened from “move”). Its primary purpose is moving files and folders, but it can also rename them, since the act of renaming a file is interpreted by the filesystem as moving it from one name to another.
The following syntax is used to rename files with mv:
“filename1.ext” is the original name of the file, and “filename2.ext” is the new name.
The same pattern works for renaming folders. If the files are not located in the currently active folder, their full path has to be specified:
Note that the mv command requires write permission for the folder containing the files. In the case of system files and folders, the user needs to obtain root permissions to rename files by prepending mv with sudo . An extra layer of protection is provided by the -i (interactive) option, which asks the user to confirm the file rename before it’s actually applied.
There’s also the -v (verbose) option, which lists all changes that have been made by mv . Options are written after mv but before the filenames.
Using the “rename” Command
This command to rename files in Linux is slightly more advanced than mv because it requires the knowledge of, or at least a basic familiarity with, regular expressions. That may sound scary, but don’t give up on rename just yet – it can be used for plain batch renaming simply by following tutorials like this one.
In many distributions of Linux, the rename command may not be available by default. If you are unable to use it in yours, you will have to install it.
In Debian-based Linux, type this in your terminal:
In Arch-based Linux:
The rename syntax looks like this:
The letter “s” stands for “substitute,” and it’s the main part of the regular expression. Single quotes around it are obligatory. Available options are:
- -v (verbose: prints the list of renamed files along with their new names)
- -n (“no action:” a test mode or simulation which only shows the files that will be changed without touching them)
- -f (a forced overwrite of the original files)
The rename command also accepts wildcards to rename multiple files of the same type, and it works on file extensions as well. For example, this would change all files with the extension .jpeg to .jpg:
The wildcard symbol (*) means that all files in the folder will be affected.
The regular expression also has its own options (modifiers): “g” (global: affects all occurrences of the expression) and “i” (performs case-insensitive substitution). They are written at the end of the expression just before the closing single quote and can be combined:
This would apply to all .jpg files that contain “DSC,” “dSC,” and “dsc” – change that part of the filename to “photo.” However, because of the “-n” option, the command wouldn’t actually rename the files but just print them in the console window.
Substitution is not the only thing this regular expression can do. There’s also translation – marked by the letter “y” – which can transform the filenames on a more complex level. It is most often used to change the filename case:
This would change the names of all .jpg files from lowercase to uppercase. To do it in the reverse, just switch the “oldname” and “newname” parts of the regular expression.
Using the rename command boils down to mixing a few basic patterns to achieve the desired result. Thanks to the -n option, the users will never have to put their files at risk (or their nerves at stake) since it offers a safe and useful preview of what the renamed files will look like.
Métamorphose2
Métamorphose is a cross-platform file and folder mass renamer. For those who prefer a GUI tool for carrying out renaming operations, Métamorphose is quite a powerful tool to use. It is available for both Windows and Linux.
To get started, go to its website and download the installer file for your distro. It provides a deb file for Debian-based distro and RPM package for Fedora, Mandriva and SUSE.
Once you run the app, it will be the first “Picker” tab. This is where you select the directory that contains the files you want to batch rename. Do note that it only supports one directory per renaming operation, though it can recurse through child folders within the selected directory.
After selecting the directory, click on the “Renamer” tab. From here you can decide on the renaming rules. On the left pane you can select the action you want to perform. For example, “insert” will insert terms to the name, while “length” allows you to trim the file name to a number of characters. There are also the “move text,” “replace” and “modify” options you can choose. As you can see, it provides extensive options for you to rename your files.
Lastly, just click the “Go” button at the top of the bottom pane to run the renaming action. If you find any error after renaming, there is an Undo option to revert all the changes.
pyRenamer – The Easy Way Out
Finally, the solution that all the anti-console users have been waiting for: a desktop application where everything can be done with a simple click of the mouse. pyRenamer is a crazy-powerful file renaming tool written in Python, which can be found here. Users of Ubuntu and its derivatives can install pyRenamer from the repositories using the command:
The interface consists of four parts:
- Tree-view file browser for selecting files and folders
- Central preview pane showing the filenames before and after renaming
- Tabbed control area for choosing the renaming criteria
- Options sidebar
pyRenamer can remove accents and duplicate symbols from filenames; replace any string of text with another; 20names to uppercase, lowercase or sentence case; and automatically insert or remove spaces and underscores. Beginners will love it because all of this can simply be selected in the tabbed area, previewed in the main area and confirmed by clicking Rename. If they wish to experiment with patterns, pyRenamer provides a cheatsheet to make it easier.
Advanced users will appreciate pyRenamer’s ability to rename multimedia files by reading from their metadata. It’s also possible to manually rename a single file when a batch rename is unnecessary.
In essence, pyRenamer wraps the functionality of the mv and remove commands into a user-friendly GUI. It’s a great choice for those who aren’t confident in their CLI skills.
Now that you know how to rename files in Linux, you may want to learn how to recursively change file permissions. Read on to learn how to diagnose a slow-running Linux computer or perhaps make use of the Hosts file to block/access websites.
Miguel has been a business growth and technology expert for more than a decade and has written software for even longer. From his little castle in Romania, he presents cold and analytical perspectives to things that affect the tech world.
Our latest tutorials delivered straight to your inbox
Как переименовать файл Linux
Переименование файла 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
Или для изображений:
Символ звездочки означает, что переименование файлов 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. Конечно, есть и другие способы, например, написать скрипт, или использовать файловые менеджеры. А как вы выполняете сложные операции по переименованию? Напишите в комментариях!