Как изменить название каталога линукс

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

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

Можно переименовать не просто одну папку, а выбрать стразу несколько и настроить для них массовое переименование. Вы можете использовать команду mv, rename, а также утилиту find для массового переименования. Но сначала давайте поговорим о том как всё это сделать в файловом менеджере.

1. Файловый менеджер

Самый простой способ переименовать папку — в файловом менеджере. Например, для Ubuntu это Nautilus. Откройте файловый менеджер и кликните правой кнопкой мыши по нужной папке. В контекстном меню выберите Переименовать:

Затем просто введите новое имя:

После нажатия клавиши Enter папка будет переименована.

2. Команда mv

Команда mv предназначена для перемещения файлов в другое место, однако её можно без проблем использовать чтобы переименовать папку или файл не перемещая его никуда. По сути, если файл или папка перемещается в пределах одного раздела диска, то на самом деле они просто переименовываются, а физически остаются на том же месте. Синтаксис:

$ mv старое_имя новое_имя

Чтобы переименовать папку ~/Музыка/Папка 1 в Папка 11 используйте:

mv ~/Музыка/Папка_1 ~/Музыка/Папка_10

Если в имени файлов есть пробелы, то путь к файлу следует взять в кавычки. После выполнения этой команды папка будет переименована:

ls ~/Музыка

Обратите внимание, что слеш в конце папки назначения писать нельзя, иначе, ваша папка будет перемещена в указанную папку, если такая существует.

3. Команда rename

Команду rename можно использовать аналогично mv, только она предназначена специально для переименования файлов и папок поэтому у неё есть несколько дополнительных возможностей. Синтаксис команды следующий:

$ rename регулярное_выражение файлы

Но прежде всего программу надо установить:

sudo apt install rename

Самый простой пример, давайте заменим слово «Папка» на «Dir» во всех папках:

rename 's/Папка/Dir/' ~/Музыка/*

Можно пойти ещё дальше и использовать регулярное выражение чтобы заменить большие буквы в названиях на маленькие:

rename 'y/A-Z/a-z/' ~/Музыка/*

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

rename -n 'y/A-Z/a-z/' ~/Музыка/*

4. Скрипт Bash

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

vi dir_rename.sh

#!/bin/bash
for dir in *
do
if [ -d "$dir" ]
then
mv "${dir}" "${dir}_new"
fi
done

Этот скрипт добавляет слово _new для всех папок в рабочей директории, в которой был он был запущен. Не забудьте дать скрипту права на выполнение перед тем, как будете его выполнять:

chmod ugo+x dir_rename.sh

./dir_rename.sh

5. Команда find

Массовое переименование папок можно настроить с помощью утилиты find. Она умеет искать файлы и папки, а затем выполнять к найденному указанную команду. Эту особенность программы можно использовать. Давайте для всех папок, в имени которых есть dir добавим слово _1. Рассмотрим пример:

find . -name "Dir*" -type d -exec sh -c 'mv "{}" "{}_1"' ;

Утилита ищет все папки, в имени которых есть слово Dir, затем добавляет с помощью mv к имени нужную нам последовательность символов, в данном случае единицу.

6. Утилита gio

Утилита gio позволяет выполнять те же действия что и с помощью обычных утилит mv или rename, однако вместо привычных путей, можно использовать пути GVFS. Например: smb://server/resource/file.txt. Для переименования папки можно использовать команду gio move или gio rename. Рассмотрим пример с move:

gio move ~/Музыка/Dir_3 ~/Музыка/Dir_33

Переименование папки Linux выполняется аналогично тому, как это делается с помощью mv.

Выводы

В этой небольшой статье мы рассмотрели как переименовать папку Linux. Как видите, для этого существует множество способов и всё делается достаточно просто.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Introduction

Renaming a directory is one of the most basic tasks you will perform on any operating system. The Linux terminal offers several different ways to rename directories using commands and scripts.

In this tutorial, we will go over the different methods you can use to rename a directory in Linux through the terminal window.

How to rename directories 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

Renaming Directories With the mv Command

The primary function of the mv command in Linux is moving files and directories from one place to another. It uses the following command syntax:

mv [options] [source] [destination]

If the destination directory does not exist, the mv command renames the source directory instead. In this case, the syntax changes to:

mv [options] [current directory name] [new directory name]

As an example, let’s say we have Directory1, Directory2, and Directory3 in our Home directory:

Checking the content of the Home directory using the ls command

To rename Directory1 into Example_Directory with the mv command, use:

mv Directory1 Example_Directory

There is no output if the command is successful, so we need to use the ls command to verify the name change:

ls -l
Verifying the name change using the ls command

Renaming Directories With the rename Command

The rename command in Linux is a dedicated command used to change the names of files and directories. Using this command makes it easier to rename multiple directories at the same time.

Note: The rename command is not included in all Linux distributions 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

Renaming a Single Directory With the rename Command

The rename command uses the following syntax:

rename [options] 's/[expression]/[replacement]/' [file name]

The command renames the file by replacing the first occurrence of the expression with the replacement. For example, if we want to rename Directory1 to Example_Directory:

rename 's/Directory1/Example_Directory/' *

In this example, we can see that the rename command syntax consists of several sections:

  • rename: Invokes the rename command.
  • s: Short for substitute, indicates that we are replacing the expression with the replacement.
  • /Directory1: Specifies the expression or the part of the old directory name that you want to replace.
  • /Example_Directory/: Defines the replacement or the new directory name.
  • *: Searches the Home directory for names matching the provided expression.

Verifying the Home directory content with the ls command shows that the directory now has a new name:

Verifying the new directory name with the ls command

Renaming Multiple Directories With the rename Command

The rename command provides a way to rename multiple directories at the same time without using bash scripts. For instance, if we want to rename Directory1, Directory2, and Directory3 to Folder1, Folder2, and Folder3:

rename -v 's/Directory/Folder/' *

In the example above:

  • -v: Invokes the verbose output, listing each step of the process.
  • 's/Directory/Folder/': Replaces Directory in the names of the search results with Folder.
  • *: Searches the Home directory for names matching the provided expression.
Using the rename command to change multiple directory names

The rename command can also translate file names by using the y argument instead of the s argument. In this case, it translates one string of characters into another, character-for-character.

For instance:

rename 'y/abc/def/'

The command above translates every a character into d, every b into e, and every c into f.

In the example below, we translated blank spaces in directory names to underscores (_).

rename -v 'y/ /_/' *
Translating directory names using the rename command

Renaming Directories With the find Command

In case you are not sure where the directory you want to rename is located, using the find command with the mv command lets you search for it and rename it when it’s found:

find . -depth -type d -name [current directory name] -execdir mv {} [new directory name] ;

In the example above, -execdir executes the mv command once the find command locates the directory.

For instance, the command below finds and renames Directory1 into Example_Directory:

find . -depth -type d -name Directory1 -execdir mv {} Example_Directory ;
Using the find command to rename a directory

Renaming Directories With Bash Scripts

Using bash scripts is another way of renaming multiple directories at the same time. Unlike the rename command, bash scripts allow you to save a template for future use.

Start by creating the script with a text editor, such as Nano:

sudo nano rename_directories.sh

The following example is a bash script that searches for directories and appends the current date to their name:

#!/bin/bash

#Searches for directories and renames them according to the specified pattern

for d in *
do
    if [ -d "$d" ]
    then
      mv -- "$d" "{d}_$(date +%Y%m%d)"
    fi
done

In the example above:

  • The first line instructs the script to go through all files and directories in the current location.
  • Lines 2 and 3 check for directories.
  • Lines 4 and 5 append the current date to the name of any directory found.

Press Ctrl+X, type Y, and press Enter to close and save the script.

As an example, let’s use the script above to change the names of Directory1, Directory2, and Directory3, located in the Example directory.

Start by moving in to the Example directory:

cd Example

Learn more about Linux cd command in our guide on how to change and move to different categories.

Next, execute the script by using the sh command:

sh rename_directory.sh

Using the ls command allows us to verify the name change:

ls -l
Using the ls command to verify the name change

Conclusion

After reading this article, you should know how to rename directories in Linux using commands and bash scripts.

Learn more about using Linux commands in our Linux Commands All Users Should Know {Ultimate List}.

I have got the directory /home/user/oldname and I want to rename it to /home/user/newname. How can I do this in a terminal?

Rafał Cieślak's user avatar

asked Aug 8, 2011 at 16:58

N.N.'s user avatar

3

mv /home/user/oldname /home/user/newname

Community's user avatar

answered Aug 8, 2011 at 17:10

Rafał Cieślak's user avatar

Rafał CieślakRafał Cieślak

19.9k7 gold badges54 silver badges86 bronze badges

7

mv can do two jobs.

  1. It can move files or directories
  2. It can rename files or directories

To just rename a file or directory type this in Terminal:

mv old_name new_name

with space between the old and new names.

To move a file or directory type this in Terminal.

mv file_name ~/Desktop

it will move the file to the desktop.

Zanna's user avatar

Zanna

68.3k55 gold badges210 silver badges320 bronze badges

answered Apr 21, 2013 at 13:58

shadi's user avatar

shadishadi

1,5591 gold badge9 silver badges2 bronze badges

0

mv -T /home/user/oldname /home/user/newname

That will rename the directory if the destination doesn’t exist or if it exists but it’s empty. Otherwise it will give you an error.

If you do this instead:

mv /home/user/oldname /home/user/newname

One of two things will happen:

  • If /home/user/newname doesn’t exist, it will rename /home/user/oldname to /home/user/newname
  • If /home/user/newname exists, it will move /home/user/oldname into /home/user/newname, i.e. /home/user/newname/oldname

Source: How to decide that mv moves into a directory rather than replacing directory?

Community's user avatar

answered Apr 27, 2016 at 18:31

bmaupin's user avatar

bmaupinbmaupin

4,56742 silver badges67 bronze badges

3

If you want to rename a directory at your level in the file system (e.g., you are at your home directory and want to rename a directory that is also in your home directory):

mv Directory ./NewNameDirectory

answered Jul 12, 2014 at 13:26

Matt P's user avatar

Matt PMatt P

1111 silver badge2 bronze badges

This gvfs-move command will also rename files and directories.

gvfs-move /home/user/oldname /home/user/newname

answered Apr 21, 2014 at 5:26

Avinash Raj's user avatar

Avinash RajAvinash Raj

75.8k55 gold badges212 silver badges252 bronze badges

gvfs-rename will rename directories as well. It will give an error if a directory with the new name already exists. The only limitation is that you can’t use a path with the folder name. So

gvfs-rename /home/boo /home/boo-the-dog 

will not work, but

cd /home 
gvfs-rename boo boo-the-dog 

will work. Not as useful as mv -T but I read in the man that it was meant for network operations.

answered Nov 29, 2016 at 7:58

thebunnyrules's user avatar

thebunnyrulesthebunnyrules

1,0331 gold badge12 silver badges18 bronze badges

My preferred method is using: vidir because I love vi

Install moreutils

sudo apt update; sudo apt install moreutils

Call command vidir in your home-directory

vidir ~

Now search for the directory to change, using slash / e.g. /oldname
make the changes, then press =
ESC
type :wq

Done!

answered Jun 16, 2022 at 17:04

koni_raid's user avatar

koni_raidkoni_raid

3,2622 gold badges22 silver badges28 bronze badges

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

В этой статье объясняется, как переименовать каталоги с помощью командной строки.

Переименование каталогов

В Linux и Unix-подобных операционных системах вы можете использовать команду mv (без перемещения) для переименования или перемещения файлов и каталогов из одного места в другое.

Синтаксис команды mv для перемещения каталогов следующий:

mv [OPTIONS] source destination

Например, чтобы переименовать каталог dir1 в dir2, вы запустите:

mv dir1 dir2

При переименовании каталогов вы должны указать в mvкоманде ровно два аргумента. Первый аргумент – это текущее имя каталога, а второй – новое имя.

Важно отметить, что, если каталог dir2 уже существует, то каталог dir1 перемещается в dir2.

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

mv /home/user/dir1 /home/user/dir2

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

Переименование одного каталога – простая задача, но переименование нескольких каталогов одновременно может быть проблемой, особенно для новых пользователей Linux.

Переименование нескольких каталогов одновременно редко требуется.

Переименование нескольких каталогов с помощью mv

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

Вот пример, показывающий, как использовать цикл for в Bash для добавления текущей даты к именам всех каталогов в текущем рабочем каталоге:

for d in *; do 
  if [ -d "$d" ]; then
    mv -- "$d" "${d}_$(date +%Y%m%d)"
  fi
done

Давайте проанализируем код построчно:

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

Вот решение той же задачи с использованием mv в сочетании с find:

find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' ;

Команда find передает все каталоги mv один за другим, используя опцию -exec. Строка {} – это имя каталога, обрабатываемого в данный момент.

Как видно из примеров, переименование нескольких каталогов с помощью mv не является легкой задачей, так как требует хорошего знания сценариев Bash.

Переименование нескольких каталогов с помощью rename

Команда rename используется для переименования нескольких файлов и каталогов. Эта команда более сложна, чем mv, она требует базовых знаний о регулярных выражениях.

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

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

find . -mindepth 1 -prune -type d | rename 'y/ /_/'

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

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

find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'

Вывод

Мы показали вам, как использовать mvкоманды для переименования каталогов.

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

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

В этом уроке мы покажем вам , как использовать 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 и Debian

    sudo apt install rename 
  • Установить rename на CentOS и Fedora

    sudo yum install prename 
  • Установить rename на Arch Linux

    yay 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 .

Catalog and TuxСобрали несколько способов переименования папок в Linux. Выбирайте тот, который удобнее.

Через графический интерфейс операционной системы

При наличии графического интерфейса операционной системы переименовать папку очень просто. Достаточно кликнуть правой кнопкой мыши по нужной папке и выбрать в контекстном меню пункт Переименовать.

Переименование папок в Linux

После этого достаточно будет ввести новое имя папки и нажать Enter.

Переименование папок в Linux

Команда RENAME

Следующие способы будут касаться терминала Linux. Начнём с команды (утилиты) rename, имя которой говорит само за себя. Переименовать с её помощью можно как файлы, так и папки. Синтаксис команды выглядит так:

rename [регулярное_выражение] [файл(ы)_папка(и)]

Допустим, мы хотим переименовать папку /home/test/Документы/Папка/ в /home/test/Документы/Папка2/:

rename 's/Папка/Папка2/' /home/test/Документы/*

Через использование регулярных выражений можно организовать и массовое переименование или массовую замену заглавных и строчных букв. Пример ниже заменит все заглавные латинские буквы в названиях папок в каталоге /home/test/Документы/ на строчные. Заметьте, именно латинские буквы.

rename 'y/A-Z/a-z/' /home/test/Документы/*

Если хотите предварительно просмотреть результаты переименования, добавьте ключ -n.

rename -n 'y/A-Z/a-z/' /home/test/Документы/*

Такая команда не переименует папки.

Переименование папок в Linux

Кстати, одноимённая команда есть и в Windows.

Команда MV

Прямое предназначение команды mv — перемещение файлов и папок, но использовать её можно и для переименования. Если при использовании команды mv не менять местоположение файла или папки, то произойдёт переименование.

mv [старое_имя] [новое_имя]

Пример:

mv /home/test/Документы/Папка /home/test/Документы/Папка2

Как видите, здесь мы переименовали каталог /home/test/Документы/Папка/ в /home/test/Документы/Папка2/.

Если в имени или пути встречаются пробелы, то нужно использовать кавычки.

Скрипт BASH

Для массового переименования можно использовать скрипт с циклом for, который будет перебирать все папки в директории и менять их названия.

#!/bin/bash
for dir in *
do
if [ -d "$dir" ]
then
mv "${dir}" "${dir}_newname"
fi
done

Этот скрипт добавит к именам всех каталогов «_newname» в той директории, где он был запущен. На забудьте дать файлу скрипта права на выполнение.

Команда FIND

Массовое переименование папок можно организовать и через команду find. Она используется для поиска и выполнения действий с найденными файлами и папками. Этим действием может быть и переименование.

find . -name "Primer*" -type d -exec sh -c 'mv "{}" "{}_newname"' ;

Пример выше ищет каталоги, в наименовании которых встречается «Primer», и добавляет к их названию «_newname».

Утилита GIO

Утилита GIO позволяет выполнять те же действия, что доступны через утилиты MV и RENAME, но с использованием подсистемы GVFS. Для переименования папок можно использовать команды gio move и gio rename. Например:

gio move /home/test/Документы/Папка /home/test/Документы/Папка2

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

mv rename linux

Переименование файлов в 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

Понравилась статья? Поделить с друзьями:
  • Как изменить название карточки товара на вайлдберриз
  • Как изменить название картинки на компьютер
  • Как изменить название каналов на телевизоре самсунг
  • Как изменить название канала на яндекс дзен
  • Как изменить название канала на ютьюбе