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

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

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

mv test.txt student.txt

 

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

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

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

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

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

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

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

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

Все верно.

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

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

Например, в домашнем каталоге имеются 2 каталога: music/ и video/. Если ввести mv 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

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

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