Команда mv
(move) — одна из основных команд Linux. Она используется для перемещения и переименования файлов из каталогов и доступна во всех дистрибутивах Linux.
При перемещении файла или каталога в новый каталог сохраняется базовое имя файла. При перемещении файла все ссылки на другие файлы сохраняются.
Содержание
Синтаксис команды mv
mv [ПАРАМЕТР]… ИСТОЧНИК НАЗНАЧЕНИЕ
Переименовывает ИСТОЧНИК в НАЗНАЧЕНИЕ, или перемещает ИСТОЧНИК(и) в КАТАЛОГ.
Опции
- --backup[=КОНТРОЛЬ]
- Создавать резервные копии целевых файлов
- -b
- То же, что и
--backup
, но без аргумента - -f, --force
- Переписывать существующие файлы не спрашивая
- -i, --interactive
- Спрашивать перед тем как переписывать
- -n, --no-clobber
- Не переписывать существующий файл
- --strip-trailing-slashes
- Удалять все конечные косые черты из каждого аргумента ИСТОЧНИК
- -S, --suffix=СУФФИКС
- Перекрывать обычный суффикс для резервных копий
- -t, --target-directory=КАТАЛОГ
- Перемещать все ИСТОЧНИКИ в КАТАЛОГ
- -T, --no-target-directory
- Считать НАЗНАЧЕНИЕ обычным файлом
- -u, --update
- Перемещать только, если ИСТОЧНИК новее чем файл назначения, или когда файл назначения отсутствует
- -v, --verbose
- Пояснять производимые действия
- -Z, --context
- Задать контекст безопасности SELinux файлу назначения как у типа по умолчанию
Если указано более одного параметра -i
, -f
, -n
, то используется последний.
По умолчанию суффикс для запасных копий ~
, если только не установлена переменная окружения SIMPLE_BACKUP_SUFFIX или не задан параметр --suffix
.
Способ контроля версий может быть установлен при помощи ключа --backup
или переменной окружения VERSION_CONTROL.
Допустимые значения:
- none, off
- Никогда не создавать резервных копий (даже если указан параметр
--backup
) - numbered, t
- Создавать нумерованные копии
- existing, nil
- Пронумеровать, если уже существуют пронумерованные резервные копии, иначе создавать
- простые
- simple. never
- Всегда создавать простые копии
Примеры использования в Linux команды mv
В команде mv
рекомендуется использовать опции -v
и -i
для получения информации о производимых действиях и запросе на перезапись существующих файлов.
Перемещение файла
Перемещаем файл readme из каталога Directory_Source
в существующий пустой каталог Directory_Target
:
oleg@mobile:~:$ mv Directory_Source/readme Directory_Target/
Переименование файла
Файл readme
в каталоге Directory_Target
переименовываем в readme_new
:
oleg@mobile:~:$ mv Directory_Target/readme Directory_Target/readme_new
Результат:
oleg@mobile:~:$ ls -l Directory_Target/
итого 4
-rw-r--r-- 1 oleg users 145 июл 19 12:48 readme_new
Переименование каталога
Каталог Directory_Target
переименовываем в Directory_New
:
oleg@mobile:~:$ mv Directory_Target/ Directory_New
Результат:
oleg@mobile:~:$ ls -l
итого 284
...
drwxr-xr-x 2 oleg users 4096 июл 20 13:48 Directory_New/
drwxr-xr-x 2 oleg users 4096 июл 20 13:45 Directory_Source/
...
Резервная копия файла
В исходном каталоге создаем ещё один файл readme
:
oleg@mobile:~/Directory_Source:$ touch readme
Для создания резервной копии используется опция -b
.:
oleg@mobile:~/Directory_Source:$ mv -b readme ../Directory_Target/
Результат:
oleg@mobile:~/Directory_Source:$ ls -l ../Directory_Target/
итого 344
-rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg
-rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png
-rw-r--r-- 1 oleg users 23370 мая 9 11:01 browser-vpn-linux-3.png
-rw-r--r-- 1 oleg users 19923 мая 9 11:10 browser-vpn-linux-4.png
-rw-r--r-- 1 oleg users 23904 мая 9 11:02 browser-vpn-linux-5.png
-rw-r--r-- 1 oleg users 27792 мая 9 11:03 browser-vpn-linux-6.png
-rw-r--r-- 1 oleg users 145 июл 20 14:48 readme
-rw-r--r-- 1 oleg users 145 июл 19 12:48 readme~
Перед перемещением файла readme
в каталог назначения существовавший там файл с тем же именем был переименован в readme~
.
Перемещение нескольких файлов
Содержимое каталога Directory_Source
:
oleg@mobile:~/Directory_Source:$ ls -la
итого 360
drwxr-xr-x 2 oleg users 4096 июл 20 14:06 ./
drwx--x--x 68 oleg 100 12288 июл 20 14:06 ../
-rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg
-rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png
-rw-r--r-- 1 oleg users 23370 мая 9 11:01 browser-vpn-linux-3.png
-rw-r--r-- 1 oleg users 19923 мая 9 11:10 browser-vpn-linux-4.png
-rw-r--r-- 1 oleg users 23904 мая 9 11:02 browser-vpn-linux-5.png
-rw-r--r-- 1 oleg users 27792 мая 9 11:03 browser-vpn-linux-6.png
-rw-r--r-- 1 oleg users 145 июл 19 12:48 readme
Переместим 2 файла из текущего каталога в пустой каталог Directory_Target
:
oleg@mobile:~/Directory_Source:$ mv browser-vpn-linux-1.jpg browser-vpn-linux-2.png ../Directory_Target
Результат:
oleg@mobile:~/Directory_Source:$ ls -l ../Directory_Target/
итого 240
-rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg
-rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png
Переместим из текущего каталога в каталог назначения файла по маске *.png
:
oleg@mobile:~/Directory_Source:$ mv *.png ../Directory_Target
Результат:
oleg@mobile:~/Directory_Source:$ ls -l ../Directory_Target/
итого 336
-rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg
-rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png
-rw-r--r-- 1 oleg users 23370 мая 9 11:01 browser-vpn-linux-3.png
-rw-r--r-- 1 oleg users 19923 мая 9 11:10 browser-vpn-linux-4.png
-rw-r--r-- 1 oleg users 23904 мая 9 11:02 browser-vpn-linux-5.png
-rw-r--r-- 1 oleg users 27792 мая 9 11:03 browser-vpn-linux-6.png
Переместим все файлы из текущего каталога в каталог назначения:
oleg@mobile:~/Directory_Source:$ mv * ../Directory_Target
Результат:
oleg@mobile:~/Directory_Source:$ ls -l ../Directory_Target/
итого 340
-rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg
-rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png
-rw-r--r-- 1 oleg users 23370 мая 9 11:01 browser-vpn-linux-3.png
-rw-r--r-- 1 oleg users 19923 мая 9 11:10 browser-vpn-linux-4.png
-rw-r--r-- 1 oleg users 23904 мая 9 11:02 browser-vpn-linux-5.png
-rw-r--r-- 1 oleg users 27792 мая 9 11:03 browser-vpn-linux-6.png
-rw-r--r-- 1 oleg users 145 июл 19 12:48 readme
К файлам в каталоге назначения добавился остававшийся в исходном каталоге файл readme
.
Перемещение файлов, отсутствующих в каталоге назначения
В этом случае используется опция -n
:
oleg@mobile:~/Directory_Source:$ mv -n * ../Directory_Target
Перемещение файлов, которые новее
Заменяем существующие файлы более новыми исходными, используя опцию -u
:
oleg@mobile:~/Directory_Source:$ mv -u * ../Directory_Target
Заключение
В Linux умение пользоваться командой mv
столь же необходимо, как и, командой cp
. Все начинающие пользователи должны обязательно научиться использовать их в своей работе.