Настя и сборник весёлых историй
Оглавление:
- Переименование файлов с помощью команды mv
- Переименование нескольких файлов с помощью команды mv
- Переименование файлов с помощью команды переименования
- Вывод
Переименование файлов и каталогов является одной из самых основных задач, которые вам часто приходится выполнять в системе Linux.
Переименовать один файл легко, но переименование нескольких файлов одновременно может быть проблемой, особенно для пользователей, которые являются новичками в Linux. Вы можете переименовывать файлы, используя файловый менеджер с графическим интерфейсом или через терминал командной строки.
В этом уроке мы покажем вам, как использовать команды
mv
и
rename
для переименования файлов и каталогов.
Переименование файлов с помощью команды mv
Команда
mv
(сокращение от перемещения) используется для переименования или перемещения файлов из одного места в другое. Синтаксис команды
mv
следующий:
mv source destination
source
может быть один или несколько файлов или каталогов, а
destination
может быть один файл или каталог.
- Если вы указываете несколько файлов в качестве
source
,destination
должен быть каталог. В этом случаеsource
файлы перемещаются в целевой каталог. Если вы указываете один файл в качествеsource
, аdestination
объектом является существующий каталог, то файл перемещается в указанный каталог. Чтобы переименовать файл, необходимо указать один файл в качествеsource
и один файл в качестве целиdestination
.
Например, чтобы переименовать файл
file1.txt
в
file2.txt
вы должны выполнить:
Переименование нескольких файлов с помощью команды mv
Команда
mv
может переименовывать только один файл за раз, но она может использоваться вместе с другими командами, такими как
find
или inside bash, для циклов или while, чтобы переименовать несколько файлов.
В следующем примере показано, как использовать цикл Bash for для переименования всех файлов
.html
в текущем каталоге, изменив расширение
.html
на
.php
.
for f in *.html; do mv -- "$f" "${f%.html}.php" done
Давайте проанализируем код построчно:
- Первая строка создает цикл for и просматривает список всех файлов, оканчивающихся на
.html
. Вторая строка применяется к каждому элементу списка и перемещает файл в новый, заменяя.html
на.php
. Часть${file%.html}
использует расширение параметра оболочки для удаления части.html
из файла filename.done, указывающего конец сегмента цикла.
Мы также можем использовать команду
mv
в сочетании с
find
для достижения того же, что и выше.
find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;
Команда find передает все файлы, оканчивающиеся на
.html
в текущем каталоге, команде
mv
один за другим с помощью ключа
-exec
. Строка
{}
- это имя файла, обрабатываемого в данный момент.
Как видно из приведенных выше примеров, переименование нескольких файлов с помощью команды
mv
- непростая задача, так как требует хорошего знания сценариев Bash.
Переименование файлов с помощью команды переименования
Команда
rename
используется для переименования нескольких файлов. Эта команда более продвинутая, чем
mv
так как требует базовых знаний о регулярных выражениях.
Существует две версии команды
rename
с различным синтаксисом. В этом уроке мы будем использовать версию команды
rename
perl. Если у вас не установлена эта версия в вашей системе, вы можете легко установить ее с помощью менеджера пакетов вашего дистрибутива.
-
Установите переименование в Ubuntu и Debian
sudo apt install rename
Установите переименование на CentOS и Fedora
sudo yum install prename
Установите переименование в Arch Linux
yay perl-rename ## or yaourt -S perl-rename
Синтаксис команды
rename
следующий:
rename 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)
По умолчанию команда переименования не перезаписывает существующие файлы. Передайте аргумент
-f
чтобы разрешить перезапись существующих файлов.
rename -f 's/.html/.php/' *.html
Ниже приведены еще несколько распространенных примеров использования команды переименования:
-
Заменить пробелы в именах файлов подчеркиванием
rename 'y/ /_/' *
Преобразование имен файлов в нижний регистр
rename 'y/AZ/az/' *
Преобразовать имена файлов в верхний регистр
rename 'y/az/AZ/' *
Вывод
К настоящему времени вы должны хорошо понимать, как использовать команды
mv
и
rename
для переименования файлов. Конечно, есть и другие команды для переименования файлов в Linux, такие как
mmv
. Новые пользователи Linux, которых пугает командная строка, могут использовать инструменты пакетного переименования GUI, такие как Métamorphose.
Как копировать файлы и каталоги в Linux
Копирование файлов и каталогов является одной из наиболее распространенных задач, которые вы выполняете при работе в командной строке. В Linux есть несколько команд для копирования файлов, при этом cp и rsync являются наиболее широко используемыми инструментами.
Как удалить файлы и каталоги с помощью командной строки Linux
В этом руководстве мы покажем вам, как использовать команду rm для удаления файлов и каталогов, на примерах и объяснениях наиболее распространенных параметров rm.
Переименовать команду в Linux (переименовать несколько файлов)
Команда rename переименовывает указанные файлы, заменяя поисковое выражение в их имени указанной заменой.