Команда mv в Linux с примерами

Опубликовано: 16 Февраля, 2022

mv означает движение . mv используется для перемещения одного или нескольких файлов или каталогов из одного места в другое в файловой системе, такой как UNIX. Он выполняет две различные функции:
(i) Он переименовывает файл или папку.
(ii) Перемещает группу файлов в другой каталог.
Во время переименования дополнительное пространство на диске не используется. Эта команда обычно работает в автоматическом режиме, что означает отсутствие запроса на подтверждение.

Синтаксис:

 mv [Option] источник назначения

Рассмотрим 4 файла с именами a.txt, b.txt и так далее до d.txt .
Чтобы переименовать файл a.txt в geek.txt (не существует) :

 $ ls
a.txt b.txt c.txt d.txt

$ mv a.txt geek.txt

$ ls
b.txt c.txt d.txt geek.txt

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

Попробуем разобраться на примере, перемещая geeks.txt в b.txt (exist) :

$ ls
b.txt  c.txt  d.txt  geek.txt

$ cat geek.txt
India

$ cat b.txt
geeksforgeeks

$ mv geek.txt b.txt

$ ls
b.txt  c.txt  d.txt

$ cat b.txt
India

Параметры:
1. -i (Интерактивный): как и в cp, опция -i заставляет команду запрашивать у пользователя подтверждение перед перемещением файла, который перезаписывает существующий файл, вы должны нажать y для подтверждения перемещения, любая другая клавиша оставляет файл как есть. Эта опция не работает, если файл не существует, просто переименуйте его или переместите в новое место.

 $ ls
b.txt c.txt d.txt geek.txt

$ cat geek.txt
Индия

$ cat b.txt
выродки

$ mv -i geek.txt b.txt
mv: перезаписать b.txt? у

$ ls
b.txt c.txt d.txt

$ cat b.txt
Индия

2. -f (Force): mv запрашивает подтверждение перезаписи файла назначения, если файл защищен от записи. Параметр -f отменяет эту незначительную защиту и принудительно перезаписывает целевой файл и удаляет исходный файл.

 $ ls
b.txt c.txt d.txt geek.txt

$ cat b.txt
выродки

$ ls -l b.txt
-r - r - r - + 1 пользователь Пользователь 13 янв 9 13:37 b.txt

$ mv geek.txt b.txt
mv: заменить 'b.txt', переопределив режим 0444 (r - r - r--)? п

$ ls
b.txt c.txt d.txt geek.txt

$ mv -f geek.txt b.txt

$ ls
b.txt c.txt d.txt

$ cat b.txt
Индия

3. -n (no-clobber): с параметром -n mv предотвращает перезапись существующего файла.
В следующем примере ничего не происходит, поскольку файл будет перезаписан.

 $ ls
b.txt c.txt d.txt geek.txt

$ cat b.txt
выродки

$ mv -n geek.txt b.txt

$ ls
b.txt c.txt d.txt geek.txt

$ cat b.txt
выродки

4. -b (резервное копирование): с этим параметром легче создать резервную копию существующего файла, который будет перезаписан в результате команды mv . Это создаст файл резервной копии с добавленным к нему символом тильды (~).

 $ ls
b.txt c.txt d.txt geek.txt

$ mv -b geek.txt b.txt

$ ls
b.txt b.txt ~ c.txt d.txt

5. –version: этот параметр используется для отображения версии mv, которая в настоящее время запущена в вашей системе.

 $ mv --version
mv (GNU coreutils) 8.26
Упаковано Cygwin (8.26-2)
Авторское право (C) 2016 Free Software Foundation, Inc.
Лицензия GPLv3 +: GNU GPL версии 3 или новее.
Это бесплатное программное обеспечение: вы можете изменять и распространять его.
НИКАКИХ ГАРАНТИЙ в той степени, в которой это разрешено законом.

Написано Майком Паркером, Дэвидом Маккензи и Джимом Майерингом.