Курс по сетевым технологиям
A A A

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

mv [опции] исходное_размещение целевое_размещение

Например, имеется файл test.txt. Необходимо его переименовать в student.txt. Для этого в заданном каталоге достаточно ввести команду 

mv test.txt student.txt

То же самое и с каталогами. 

А если в качестве целевого файла указать уже существующий файл? 

Тогда целевой файл будет заменен на исходный файл.

Например, у нас имеются те же 2 файла: test.txt и student.txt:

Отображение файлов test.txt и student.txt

Теперь введем команду mv test.txt student.txt

В результате содержимое файла student.txt заменено содержимым файла test.txt, а сам файл test.txt удален

Файл test.txt был удален

Это станет очевидно, если сравнить размеры файла student.txt до и после выполнения команды mv. 

То есть содержимое файла student.txt потеряно?

Все верно.

С каталогами то же самое?

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

Например, в домашнем каталоге имеются 2 каталога: music/ и video/. Если ввести mv music/ video/, то каталог music/ будет перемещен в каталог video/

Отображение каталогов music и video

Каталог music был перемещен в каталог video

А как переместить сам файл в каталог? 

Для этого формат команды будет выглядеть так: 

mv перемещаемый_файл целевой_каталог 

 

Например, чтобы переместить файл student.txt в каталог documents/ выполним mv student.txt documents/. 

Чтобы лучше понять принцип работы команды я привел все варианты ее работы в таблице ниже:

Команда

Результат

mv файл_1 файл_2

Файл_1 существует.

Файл_2 не существует.


Операция переименования

Файл_2 будет создан с содержимым файла_1.

Файл_1 будет удален.

mv файл_1 файл_2

Оба файла существуют.


Операция перезаписи

Файл_2 будет перезаписан файлом_1.

Файл_1 будет удален.

mv файл каталог/

Файл и каталог существуют.


Операция перемещения

Файл будет перемещен в каталог.

mv каталог_1/ каталог_2/

Оба каталога существуют.


Операция перемещения

Каталог_1 будет перемещен в каталог_2.

mv каталог_1/  каталог_2/

Каталог_1 существует

Каталог_2 не существует


Операция переименования

Каталог_2 будет создан с содержимым  каталога_1

Каталог_1 будет удален.

 

Для команды mv наиболее часто используются следующие опции: 

-f (--force) - принудительное перемещение/переименование файлов/каталогов без предупреждения пользователя.

-i (--interactive) -  перед началом операции система спросит пользователя действительно ли он хочет переместить файлы.

-u (--update) - отмена перемещения, если дата модификации целевого файла позже даты исходного. Например, мы хотим заменить файл student.txt  на test.txt. Причем файл student.txt был обновлен 20 сентября 2016 г., а файл test.txt - 10 сентября 2016 г.:

Отображение даты модификации файла

Теперь выполним mv -u test.txt student.txt.  

И если сравним размеры и даты изменения файлов, то увидим, что они не изменились

Отображение файлов без изменения

Для большей убедительности можно проверить содержимое каждого файла.