Введение
Перемещение файлов и каталогов — одна из основных задач, которые часто приходится выполнять в системе Linux.
В этом уроке мы объясним, как использовать команду mv
для перемещения файлов и каталогов.
Как использовать команду mv
Команда mv
(сокращенно от move) используется для переименования и перемещения файлов и каталогов из одного места в другое. Синтаксис команды mv
следующий:
mv [OPTIONS] SOURCE DESTINATION
Параметр SOURCE
может быть одним или несколькими файлами или каталогами, а DESTINATION
может быть одним файлом или каталогом.
- Когда несколько файлов или каталогов упоминаются как
SOURCE
,DESTINATION
должен быть каталогом. В этом случае файлыSOURCE
перемещаются в каталог назначения. - Если вы укажете один файл в качестве
SOURCE
, аDESTINATION
будет существующим каталогом, файл будет перемещен в указанный каталог. - Если вы укажете один файл как
SOURCE
и один файл какDESTINATION
, вы переименуете файл. - Когда
SOURCE
является каталогом, аDESTINATION
не существует,SOURCE
будет переименован вDESTINATION
. В противном случае, еслиDESTINATION
существует, его можно переместить в каталогDESTINATION
.
Чтобы переместить файл или каталог, у вас должны быть права на запись как в SOURCE
, так и в DESTINATION
. В противном случае вы получите ошибку отказа в доступе.
Например, чтобы переместить file1
из текущего рабочего каталога в каталог /tmp
, выполните:
mv file1 /tmp
Чтобы переименовать файл, вам нужно указать имя файла назначения:
mv file1 file2
Синтаксис перемещения каталогов такой же, как и при перемещении файлов. В следующем примере, если каталог dir2
существует, команда переместит dir1
внутрь dir2
. Если dir2
не существует, dir1
будет переименован в dir2
:
mv dir1 dir2
Переместить несколько файлов и каталогов
Чтобы переместить несколько файлов и каталогов, укажите файлы, которые вы хотите переместить, в качестве источника. Например, чтобы переместить файлы file1
и file2
в каталог dir1
, введите:
mv file1 file2 dir1
Команда mv
также позволяет использовать сопоставление типов файлов. Например, чтобы переместить все pdf
-файлы из текущего каталога в каталог ~/Documents
, используйте:
mv *.pdf ~/Documents
Опции команды mv
Команда mv
принимает несколько параметров, влияющих на поведение команды по умолчанию.
В некоторых дистрибутивах Linux mv
может быть псевдонимом команды mv
с настраиваемым набором параметров. Например, в CentOS mv
— это псевдоним mv -i
. Узнать, является ли mv
псевдонимом, можно с помощью команды type
:
type mv
Если mv
является псевдонимом, вывод будет выглядеть так:
mv is aliased to `mv -i'
Если даны конфликтующие варианты, последний имеет приоритет.
Спросите перед перезаписью
По умолчанию, если целевой файл существует, он будет перезаписан. Чтобы запросить подтверждение, используйте параметр -i
:
mv -i file1 /tmp
mv: overwrite '/tmp/file1'?
Чтобы переопределить тип файла, введите y
или Y
Принудительно перезаписать
Если вы попытаетесь перезаписать файл, доступный только для чтения, команда mv
спросит, хотите ли вы перезаписать файл:
mv -i file1 /tmp
mv: replace '/tmp/file1', overriding mode 0400 (r--------)?
Чтобы не запрашивать подтверждение, используйте параметры -f
:
mv -f file1 /tmp
Этот параметр особенно полезен, когда вам нужно перезаписать несколько файлов, доступных только для чтения.
Не перезаписывать существующие файлы
Параметр -n
позволяет команде mv
никогда не перезаписывать существующие файлы:
mv -f file1 /tmp
Если file1
существует, приведенная выше команда ничего не сделает. В противном случае он переместит файл в каталог /tmp
.
Резервное копирование файлов
Если целевой файл существует, вы можете создать его резервную копию, используя параметр -b
:
mv -b file1 /tmp
Файл резервной копии будет иметь то же имя, что и исходный файл, с добавлением к нему тильды ( ~
).
Используйте команду ls, чтобы убедиться, что резервная копия создана:
ls /tmp/file1*
/tmp/file1 /tmp/file1~
Подробный вывод
Другой вариант, который может быть полезен, — это -v
. При использовании этой опции команда печатает имя каждого перемещенного файла:
mv -i file1 /tmp
renamed 'file1' -> '/tmp/file1'
Вывод
Команда mv
используется для перемещения и переименования файлов и каталогов.
Для получения дополнительной информации о команде mv
запустите эту команду из терминала:
man mv