Команда Linux mv

Опубликовано admin - ср, 07/20/2022 - 15:26

Команда mv (move) — одна из основных команд Linux. Она используется для перемещения и переименования файлов из каталогов и доступна во всех дистрибутивах Linux.

Использование команды Linux mv с примерами

При перемещении файла или каталога в новый каталог сохраняется базовое имя файла. При перемещении файла все ссылки на другие файлы сохраняются.

Содержание

Синтаксис команды 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. Все начинающие пользователи должны обязательно научиться использовать их в своей работе.

Поделиться с друзьями