Одновременное перемещение нескольких файлов с разными форматами из терминала

Прочитав заголовок, вы можете подумать, ну очень просто, я использую команда cp или mv и я использую подстановочный знак *, чтобы переместить все сразу. Но это переместит все файлы в каталог, в котором вы работаете. Но мы не хотим именно этого, мы хотим показать в этом мини-руководстве нечто более совершенное, то есть переместить только определенные форматы из этого каталога в другое место.
Помните, что когда я говорю «переместить», его также можно переименовать. С учетом сказанного, давайте приступим к делу, демонстрируя, как это можно сделать в супер простой и быстрый способ, чтобы при очистке файлов определенных форматов не приходилось перемещать их один за другим, а можно автоматизировать все из одной командной строки. Ну а для перемещения разных форматов файлы из одного каталога в другой каталог, формат команды может быть одним из следующих:
mv *.ext1 *.ext2 *.extn /ruta/destino
Оба случая служат, в первом мы указываем маршрут отправления а затем расширения что мы собираемся переехать. Только они будут перемещены, а не другие, что повлияет на любой файл, независимо от его имени. Во втором случае предполагается, что мы уже работаем из каталога, в котором находятся файлы, которые мы собираемся переместить .
Например, представьте, что мы хотим переместить все видео из одного каталога в другой. Вместо этого в этом каталоге есть документы .txt, .odt, а также музыка в формате .mp3. Если бы мы были заинтересованы только в перемещении .flv, .mp4, .avi и .mkv, мы бы сделали следующее:
mv /home/Documentos/*. /home/Multimedia
Это так просто, когда Давайте перечислим содержимое указанного исходного каталога с помощью lsМы увидим, что все перемещенные файлы исчезли, но те, на которые мы не хотели влиять, исчезнут. Очень простой пример, но новички его обязательно оценят!
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Из Linux » Распределения » Одновременное перемещение нескольких файлов с разными форматами из терминала
mv — перемещение/переименование файлов (Linux)

mv (сокращённо от англ. move) — утилита в UNIX и UNIX-подобных системах, используется для перемещения или переименования файлов.
mv [опции. ] исходный_файл целевой_файл
mv [опции. ] исходный_файл. каталог
Примечание. Часто утилиту mv называют командой, опции — ключами, а файлы/каталоги — аргументами. В этом случае синтаксис будет следующим:
mv [ключи. ] аргумент_1 аргумент_2
- Если в качестве аргументов заданы имена двух файлов, то имя первого файла будет изменено на имя второго: mv file_1 file_2 .
- Если последний аргумент является именем существующего каталога, то mv перемещает все заданные файлы в этот каталог: mv file_1 ./dir/ (перемещает file_1 в dir/file_1 относительно текущего каталога). Если последний аргумент не является каталогом и задано более чем два файла, то будет выдано сообщение об ошибке.
Наглядные примеры с файлами и каталогами:
1. $ mv plain.txt plain_2.txt — переименовать файл plain.txt в plain_2.txt.
2. $ mv tmp tmp_2 — переименовать каталог tmp в tmp_2. Если существует каталог tmp_2, то вместо переименования произойдёт перемещение каталога tmp в каталог tmp_2.
3. $ mv plain.txt tmp — переместить файл plain.txt в каталог tmp. Если каталога tmp не существует, то вместо перемещения файл plain.txt переименуется в tmp.
4. $ mv /home/user/plain.txt /home/user/tmp (где user — ваше имя в Linux) — то же, что и предыдущая команда, но с использованием абсолютного пути.
5. $ mv plain.txt ../ — переместить файл plain.txt в родительский каталог текущего каталога.
6. $ mv ../plain.txt . — переместить из родительского каталога ( ../ ) файл plain.txt в текущий каталог ( . ).
7. $ mv ../plain.txt plain_2.txt — переместить файл plain.txt из каталога на один уровень выше текущего в текущий и переименовать этот файл в plain_2.txt.
8. $ mv plain.txt /tmp_1/tmp_2/tmp_3/plain_2.txt — переместить файл plain.txt из текущего каталога в каталог tmp_3 и переименовать этот файл в plain_2.txt.
Опции (ключи)
Утилита mv имеет ключи, с помощью которых можно задать дополнительные функции для команды.
- -i , —interactive — интерактивный режим. Предупреждает, что выбранный файл будет записан поверх уже существующего в каталоге назначения.
1. $ mv -i plain.txt tmp — переместить файл plain.txt в каталог tmp, в котором возможно уже находится файл plain.txt. Если в каталоге действительно находится файл plain.txt, в терминале появится запрос:
$ mv -i plain.txt tmp
mv: переписать ‘tmp/plain.txt’? yes
Подтверждают, введя слово yes или да (можно одной буквой — y или д). Любой другой ввод пропустит файл.
2. $ mv -i /tmp/images/*.jpg . — перемещает все изображения с расширением .jpg из каталога tmp/images/ в текущий каталог ( . ). Если в текущем каталоге встретятся изображения с расширением .jpg, mv выдаст запрос на перезапись. В этой команде используется звёздочка (*) — это подстановочный знак (см. ниже главу «Подстановочные знаки»).
- -f , —force — перезаписывать существующие файлы не спрашивая (не выдавать запрос на подтверждение операции). Опция может быть полезной, когда происходит перезапись нескольких файлов с правами для чтения. Например, есть каталог tmp, в котором находится файл plain.txt с правами для чтения; нужно перезаписать этот файл другим файлом plain.txt без лишних вопросов:
$ mv -f plain.txt tmp
Если бы не было ключа -f , то в терминале появился бы вопрос, примерно, следующего содержания:
mv: заместить ‘tmp/plain.txt’, несмотря на права доступа 0464 (r—rw-r—)?
- -n , —no-clobber — не перезаписывать существующий файл.
1. $ mv -n plain.txt tmp — переместить файл plain.txt в каталог tmp. Если в каталоге tmp уже есть файл plain.txt, то ничего не делать (не перемещать, не перезаписывать и не спрашивать).
Примечание для вышеперечисленных ключей. В случае ошибочной или преднамеренной записи, когда опции -f , -i и n заданы вместе, срабатывает только последняя. Примеры:
1. $ mv -fi plain.txt tmp — то же, что и mv -i . Опция -f игнорируется.
2. $ mv -if plain.txt tmp — то же, что и mv -f . Опция -i игнорируется.
3. $ mv -fn plain.txt tmp — то же, что и mv -n . Опция -f игнорируется.
- -v , —verbose — режим дополнительных сообщений. Выводить на экран сообщение о каждой выполняемой операции.
1. $ mv -v plain.txt tmp — переместить файл plain.txt в папку tmp и вывести сообщение о проделанной операции. В терминале отобразится следующее:
$ mv -v plain.txt tmp
renamed ‘plain.txt’ -> ‘tmp/plain.txt’
Совместное использование опций -f и -i с -v :
1. $ mv -vf plain.txt tmp — переместить файл plain.txt в папку tmp, без вопроса на перезапись, и вывести сообщение о проделанной операции.
2. $ mv -vf plain* text/ tmp/ — переместить без запроса подтверждения все файлы из текущего каталога с именами, начинающимися с plain, вместе со всем каталогом text в каталог tmp, и показать порядок выполнения каждой операции.
3. $ mv -vi plain.txt tmp — переместить файл plain.txt в папку tmp и если в этой папке находится файл с таким же именем, спросить подтверждение на перезапись, а после вывести сообщение о проделанной операции. В терминале будет следующее:
$ mv -vi plain.txt tmp
mv: переписать ‘tmp/plain.txt’? yes
renamed ‘plain.txt’ -> ‘tmp/plain.txt’
- -t , —target-directory=КАТАЛОГ — переместить все исходные файлы в КАТАЛОГ.
1. $ mv -t tmp plain.txt plain_2.txt — переместить файлы plain.txt и plain_2.txt в каталог tmp.
2. $ mv plain.txt plain_2.txt tmp — то же, что и предыдущая команда.
- T , —no-target-directory — считать НАЗНАЧЕНИЕ обычным файлом, а не каталогом.
- -u , —update — не перезаписывать файлы, если они более новые. Перемещение произойдёт только в том случае, если исходный файл новее чем целевой, или когда целевой файл не существует.
- -Z , —context — задать контекст безопасности SELinux файлу назначения как у типа по умолчанию. Для системы SELinux.
- —strip-trailing-slashes — удаляет все конечные косые черты (слеши) из каждого исходного файла, заданного в качестве аргумента. Опция может пригодиться, когда исходный файл имеет косую черту на конце и указывает на каталог в виде символьной ссылки.
- — — завершает список опций. Первый знак — — признак опции, второй — начало опции. Применяется для использования с файлами, имена которых начинаются со знака минус (-).
Например, если сразу после команды mv или опции идёт файл, имя которого начинается на — , в терминале появится ошибка, что такой опции не существует (invalid option, неверный ключ):
$ mv -plain.txt tmp
mv: неверный ключ — «p»
В данном случае команда не распознаёт опцию, начинающуюся с буквы p, за которой следуют символы plain.txt. В результате команда не знает, как поступить. Для исправления ошибки предваряют имя файла опцией — и дают понять команде mv, что следующие за ней данные должны восприниматься не как опция, а как имя файла:
$ mv — -plain.txt tmp
Примечание. Можно вместо опции — использовать точку как часть пути к файлу и тем самым устранить ошибку, которая ввела в заблуждение команду mv. Например:
$ mv ./-plain.txt tmp
Резервные копии
- —backup[=КОНТРОЛЬ] — создание резервных копий существующих файлов, используя способ контроля версий. Если КОНТРОЛЬ опущен, —backup ведёт себя так же, как -b .
- -b — похож на —backup , но не использует способ контроля версий. Вместо этого используются параметры, указанные в переменной окружения VERSION_CONTROL.
- S , —suffix=СУФФИКС — указывает суффикс имени файла, который будет использоваться для всех резервных копий. Значением по умолчанию является тильда (~).
При использовании опции -b или —backup , mv переименовывает целевой файл, если он существует, добавив суффикс к его имени. Тем самым сохраняется копия исходного файла, а не его перезаписанный вариант.
Существует два типа резервных копий — простые и нумерованные:
- Простые резервные копии удаляют существующий файл резервной копии. Сохраняется только одна копия. Суффиксом по умолчанию для простых резервных копий является тильда (~). Например, файл plain.txt будет сохранён как plain.txt~. Можно изменить этот суффикс с помощью опции —suffix или установить переменную окружения SIMPLE_BACKUP_SUFFIX.
- Нумерованные резервные копии сохраняют существующие файлы резервных копий, создавая дополнительные резервные копии с возрастающим номером в имени файла. Резервные файлы не удаляются. Суффикс для нумерованных резервных копий: .~n~ , где n — целое число. Например, файл plain.txt будет сохранён в виде файла plain.txt.~1~, затем plain.txt.~2~ и т. д.
Доступны дополнительные правила для создания резервных копий с помощью контроля версий. Способ контроля версий устанавливается опцией —backup или переменной окружения VERSION_CONTROL. Значения:
- none , off — никогда не создавать резервных копий, даже если указан ключ —backup .
- numbered , t — создавать нумерованные резервные копии.
- existing , nil — если существуют нумерованные копии, то создавать нумерованные (numbered) иначе создавать простые (simple).
- simple , never — всегда создавать простые резервные копии.
1. $ mv -b plain.txt plain_2.txt — если plain_2.txt существует, он будет переименован в plain_2.txt~.
2. $ mv -b —suffix=.bak plain.txt plain_2.txt — если plain_2.txt существует, он будет переименован в plain_2.txt.bak.
3. $ mv —backup=numbered plain.txt plain_2.txt — если plain_2.txt существует, он будет переименован в plain_2.txt.~1~. Если plain_2.txt.~1~ существует, он будет переименован в plain_2.txt.~2~ и т. д.
4. $ VERSION_CONTROL=numbered mv -b plain.txt plain_2.txt — то же, что и в предыдущем примере. Переменная окружения определяется только для этой команды.
5. $ export VERSION_CONTROL=numbered; mv -b plain.txt plain_2.txt — при экспорте переменной окружения VERSION_CONTROL все команды mv -b для текущего сеанса будут использовать нумерованные резервные копии.
6. $ export VERSION_CONTROL=numbered; mv plain.txt plain_2.txt — даже если переменная VERSION_CONTROL установлена, резервные копии не создаются, потому что -b не было указано. Если файл plain_2.txt существует, он перезаписывается.
Экранирование
1. $ mv My\ plain.txt My\ plain\ 2.txt — переименовать файл My plain.txt в My plain 2.txt. Здесь пробелы в имени файла экранируются косой чертой; если этого не сделать, Linux будет рассматривать что-либо после пробела как опцию или дополнительную команду.
2. $ mv «My plain.txt» «My plain 2.txt» — то же, что и предыдущая команда. В качестве экрана выступают двойные кавычки.
3. $ mv «My plain.txt» tmp — если tmp каталог, My plain.txt перемещается в него. Если tmp является файлом, My plain.txt переименовывается в tmp, а исходный tmp перезаписывается. Если tmp не существует, My plain.txt переименовывается в tmp.
Подстановочные знаки
Знак звёздочки
1. $ mv My*.txt tmp — в команде используется подстановочный знак * . Если tmp является каталогом, все файлы с расширением .txt, чьё имя начинается с My, будут перемещены в tmp (например, My plain.txt, Myself.txt и т. п.). Если tmp не существует или не является каталогом, mv сообщает об ошибке и ничего не делает.
2. $ mv -i tmp/images/*.png tmp/img/ — перемещает все изображения с расширением .png из каталога tmp/images/ в каталог tmp/img/. Если в текущем каталоге встретятся изображения с расширением .png, mv выдаст запрос на перезапись.
Знак вопроса
1. $ mv plain. txt tmp — здесь подстановочный знак ? и в этой команде используется дважды, а значит может соответствовать максимум двум символам. Если tmp является каталогом, то любой файл с двумя символами между plain и .txt в их имени перемещается в tmp (например, plain_2.txt, plain03.txt и т. п.). Если tmp не существует или не является каталогом, mv сообщает об ошибке и ничего не делает.
2. $ mv My\ plain?.txt tmp — в этой команде всего один подстановочный знак ? . Если tmp является каталогом, то любой файл с одним символом между My plain и .txt в их имени перемещается в tmp (например, My plain1.txt, My plain2.txt и т. п.).
Справка
- —help — справочная информация о программе: $ mv —help
- —version — информация о версии программы: $ mv —version
Получить информацию о ключах mv можно с помощью утилиты man:
Для выхода из man используют клавишу q .
Несколько полезных замечаний
1. Для того чтобы гарантировать, что каталог, например, tmp — это каталог, желательно указать после него косую черту. Тогда команда примет следующий вид:
$ mv plain.txt tmp/
Если окажется, что tmp — не каталог, команда не переместит файл. Так можно предотвратить перезапись файла.
2. Если перемещается ссылка, указывающая на каталог, то нужно внимательно следить за вводимыми данными. Например, в рабочем каталоге лежит ссылка cats, которая указывает на каталог /home/user/images/cats, и нужно переместить эту ссылку в каталог /home/user/barsik. Следующая команда перемещает лишь саму ссылку:
А вот эта команда перемещает каталог, на который эта ссылка указывает:
Различие между ними лишь в косой черте, которая вводится после ссылки. Если символ / отсутствует, перемещается лишь сама ссылка. Включив этот символ, mv переместит каталог, а не ссылку.
3. Утилита mv не интерпретирует регулярные выражения (regex). Если нужно переименовать много файлов, используя сложное или детальное сопоставление старых и новых имён, следует использовать утилиту rename (установка утилиты для ОС на основе Ubuntu и Debian: sudo apt install rename ). Rename принимает регулярные выражения Perl. Примеры:
- $ rename ‘s/plain(..)/document$1/’ plain* — переименовать файлы plain.txt и plain_2.txt в document.txt и document_2.txt.
- $ rename ‘s/My\ plain(..)/doc$1/’ My* — переименовать файлы My plain.txt и My plain 2.txt в doc.txt и doc 2.txt.
Перемещение = Переименование
Перемещение файла внутри одной файловой системы в действительности равнозначно его переименованию: данные самого файла при этом остаются на тех же секторах диска, а изменяются каталоги, в которых произошло перемещение.
Перемещение предполагает удаление ссылки на файл из того каталога, откуда он перемещён, и добавление ссылки на этот самый файл в тот каталог, куда он перемещён. В результате изменяется полное имя файла — полный путь, т. е. положение файла в файловой системе.
Дополнение к этой главе (из других источников):
1. Когда исходный и целевой файлы находятся на одной файловой системе, они являются одним и тем же файлом (изменяется только имя файла; владелец, права доступа, временные штампы остаются неизменными).
Если же они находятся на разных файловых системах, то исходный файл копируется и затем удаляется. mv будет копировать время последней модификации, время доступа, идентификаторы пользователя, группы и права доступа к файлу если это возможно. Если копирование идентификаторов пользователя и/или группы закончилось неудачно, то в копии файла сбрасываются биты setuid и setgid.
2. Различия утилит cp и mv. Операции копирования (cp) и перемещения/переименования (mv) выглядят сходными, однако по сути своей глубоко различны. Начать с того, что команда mv не совершает никаких действий с перемещаемыми или переименовываемыми файлами, она модифицирует каталоги, к которым приписаны имена этих файлов. Это имеет два важных следствия.
Во-первых, при перемещении/переименовании файлы сохраняют первозданными атрибуты доступа, принадлежности и даже времени изменения метаданных (ctime) и модификации данных (mtime): ведь ни те, ни другие при перемещении/переименовании файла не изменяются.
Во-вторых, для выполнения этих действий можно не иметь никаких вообще прав доступа к файлам, достаточно иметь право на изменение каталогов, в которых они переименовываются или перемещаются: ведь имя файла фигурирует только в составе каталога и нигде более.

Neocities
Как перемещать файлы и каталоги в Linux (команда mv)
Перемещение файлов и каталогов — одна из самых основных задач, которые вам часто приходится выполнять в системе 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 .
Новые пользователи Linux, которых пугает командная строка, могут использовать файловый менеджер с графическим интерфейсом для перемещения своих файлов.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Команда mv

Команда mv используется для перемещения одного или нескольких файлов (или директорий) в другую директорию, а также для переименования файлов и директорий.
Синтаксис
mv опции исходные_файлы куда
исходные_файлы — это то, что мы будем перемещать или переименовывать. То есть это либо один файл, либо несколько файлов, либо директория, либо несколько директорий.
куда — это название директории, в которую мы перемещаем исходные файлы или директории. Или же это новое название файла или директории, если выполняется переименование. То есть это либо директория, либо новое название файла или директории.
Команда mv может:
- Переместить один или несколько файлов в другую директорию.
- Переместить одну или несколько директорий в другую директорию.
- Переименовать файл.
- Переименовать директорию.
Опции
-b или —backup или —backup=МЕТОД
Создать резервную копию существующих файлов, которые будут перезаписаны или удалены.
Имя для резервной копии может создаваться по определенным правилам. Для этого используется опция —backup=МЕТОД В качестве значения МЕТОД можно указать:
- none или off — не делать резервных копий, даже если включена опция —backup
- numbered или t — имя резервной копии получит числовой индекс (пример: myfile.txt~2~ ).
- existing или nil — если в директории уже есть резервные копии с числовыми индексами, то использовать числовые индексы для новых резервных копий, во всех остальных случаях использовать метод simple .
- simple или never — делать обычные резервные копии (пример: myfile.txt~ ).
-f или —force
При перезаписи существующих файлов не спрашивать разрешения пользователя.
-i или —interactive
При перезаписи существующих файлов спрашивать разрешение пользователя на подтверждение операции.
-n или —no-clobber
Не перезаписывать существующие файлы.
—strip-trailing-slashes
Удалить завершающий символ слеш / (если он там есть) из имени файла-источника.
-S СУФФИКС или —suffix=СУФФИКС
Изменить символ суффикса, который добавляется к именам резервных копий (при использовании опции —backup ). По умолчанию СУФФИКС равен значку тильды ~
-t ДИРЕКТОРИЯ или —target-directory=ДИРЕКТОРИЯ
Переместить все исходные файлы в директорию, которая указана в аргументе опции.
-u или —update
Перемещать только если исходный файл новее, чем файл назначения или если файл-назначения отсутствует.
-v или —verbose
Выводить информацию о каждом файле, который обрабатывает команда mv.
-Z или —context
Установить контекст (метки) SELinux для файлов назначения в значение по умолчанию.
Показать справку по команде mv.
Показать версию утилиты mv.
Примеры использования команды mv
Рассмотрим несколько примеров использования команды mv в Linux.
Рекомендуется всегда использовать опцию -v , чтобы получать информацию о том, что именно команда mv делает с файлами.
Также крайне рекомендуется использовать опцию -i , чтобы выдавался запрос на перезапись существующих файлов. В примерах ниже мы эти опции опускаем.
Переместить файл
Переместим файл myfile1.txt в директорию mydir/ (директория должна существовать). Для этого выполняем команду без каких-либо аргументов:
mv myfile1.txt mydir/
Переименовать файл
Переименуем файл myfile1.txt в myfile2.txt :
mv myfile1.txt myfile2.txt
Переименовать директорию
Переименуем директорию mydir1 в mydir2 . Выполняется точно также, как и переименование файлов.
mv mydir1 mydir2
Создавать резервные копии существующих файлов
Предположим, что нам нужно переименовать файл myfile1.txt в myfile2.txt , но файл myfile2.txt уже существует. Можно воспользоваться опцией -b , чтобы создать резервную копию существующего файла:
mv -b myfile1.txt myfile2.txt
В результате сначала существующий файл myfile2.txt будет переименован в myfile2.txt~ , то есть будет создана его резервная копия, и только потом файл myfile1.txt будет переименован в myfile2.txt .
Вместо значка тильда ~ можно добавлять к именам резервных копий произвольный суффикс. Например, добавим суффикс .bak . Для этого воспользуемся опцией -S
mv -b -S ".bak" myfile1.txt myfile2.txt
Переместить несколько файлов
Рассмотрим примеры использования команды mv для перемещения нескольких файлов в другую директорию.
Переместим сразу три файла в директорию mydir/
mv myfile1 myfile2 myfile3 mydir/
Переместим все файлы из текущей директории в директорию mydir/
mv * mydir/
Переместим все файлы с расширением .jpg в директорию mydir/
mv *.jpg mydir
Переместить только те файлы, которых нет в директории назначения
Предположим, что нам нужно переместить все файлы из одной директории в другую, но если в директории назначения уже есть файлы с такими же именами, то их не перемещать. Для этого используем опцию -n
mv -n mydir1/* mydir2/
Переместить только те файлы, которые новее
Предположим, что нам нужно переместить все файлы из одной директории в другую, но если в другой директории уже есть файлы с такими же именами, то заменять существующие файлы только если исходный файл новее (по дате). Для этого используем опцию -u
mv -u mydir1/* mydir2/
Если в имени файла есть пробелы
Если в имени файла есть пробелы, то имя файла нужно заключить в кавычки или перед каждым пробелом добавлять символ \
Предположим, что нам нужно переименовать файл в имени которого содержится пробел — My file1.txt . Для этого можно заключить имя файла в кавычки (для файла назначения аналогично).
mv "My file1.txt" "My file2.txt"
Или использовать символ косой черты перед пробелом.
mv My\ file1.txt My\ file2.txt