Команды Linux · 4 min read · Sep 13, 2025
Команда mv в Linux: Объяснение для начинающих (8 примеров)

Как и cp для копирования и rm для удаления, Linux также предлагает встроенную команду для перемещения и переименования файлов. Она называется mv. В этой статье мы обсудим основы этого инструмента командной строки, используя простые для понимания примеры. Обратите внимание, что все примеры, использованные в этом руководстве, были протестированы на Ubuntu 22.04 LTS.
Команда mv в Linux
Как уже упоминалось, команда mv в Linux используется для перемещения или переименования файлов. Следующий синтаксис команды:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...А вот что говорит страница man об этом:
Переименовать SOURCE в DEST или переместить SOURCE(ы) в DIRECTORY.Следующие примеры в формате вопросов и ответов дадут вам лучшее представление о том, как работает этот инструмент.
Вопрос 1. Как использовать команду mv в Linux?
Если вы хотите просто переименовать файл, вы можете использовать команду mv следующим образом:
mv [имя_файла] [новое_имя_файла]Например:
mv names.txt fullnames.txtАналогично, если требуется переместить файл в новое местоположение, используйте команду mv следующим образом:
mv [имяфайла] [папканазначения]
Например:
mv fullnames.txt /home/himanshu/DownloadsВопрос 2. Как убедиться, что mv запрашивает подтверждение перед перезаписью?
По умолчанию команда mv не запрашивает подтверждение, когда операция включает перезапись существующего файла. Например, следующий скриншот показывает, что существующий full_names.txt был перезаписан командой mv без каких-либо предупреждений или уведомлений.
Однако, если вы хотите, вы можете заставить mv запрашивать подтверждение, используя командный параметр -i.
mv -i [имяфайла] [новоеимя_файла]
Таким образом, вышеуказанные скриншоты четко показывают, что -i заставляет mv запрашивать разрешение пользователя перед перезаписью существующего файла. Обратите внимание, что если вы хотите явно указать, что не хотите, чтобы mv запрашивала подтверждение перед перезаписью, используйте командный параметр -f.
Вопрос 3. Как сделать так, чтобы mv не перезаписывал существующий файл?
Для этого вам нужно использовать командный параметр -n.
mv -n [имя_файла] [новое_имя_файла]Следующий скриншот показывает, что операция mv не была успешной, так как файл с именем ‘full_names.txt’ уже существовал, и команда имела параметр -n.
Примечание:
Если вы укажете более одного из -i, -f, -n, только последний будет иметь эффект.Вопрос 4. Как сделать так, чтобы mv удалял завершающие слэши (если они есть) из аргумента источника?
Чтобы удалить любые завершающие слэши из аргументов источника, используйте командный параметр –strip-trailing-slashes, как показано ниже.
mv --strip-trailing-slashes [источник] [назначение]Вот как официальная документация объясняет полезность этого параметра:
Это полезно, когда аргумент источника может иметь завершающий слэш и указывать на символическую ссылку на каталог. Этот сценарий на самом деле довольно распространен, потому что некоторые оболочки могут автоматически добавлять завершающий слэш при выполнении завершения имени файла по таким символическим ссылкам. Без этого параметра `mv`, например, (через функцию переименования системы) должен интерпретировать завершающий слэш как запрос на разыменование символической ссылки и, следовательно, должен переименовать косвенно упомянутый *каталог*, а не символическую ссылку. Хотя может показаться удивительным, что такое поведение является значением по умолчанию, это требуется POSIX и согласуется с другими частями этого стандарта.Вопрос 5. Как сделать так, чтобы mv рассматривал назначение как обычный файл?
Чтобы убедиться, что объект назначения рассматривается как обычный файл (а не каталог), используйте командный параметр -T.
mv -T [источник] [назначение]Вот почему существует этот командный параметр:
Это может помочь избежать условий гонки в программах, которые работают в общей области. Например, когда команда ‘mv /tmp/source /tmp/dest’ выполняется успешно, нет гарантии, что /tmp/source был переименован в /tmp/dest: он мог быть переименован в /tmp/dest/source, если какой-то другой процесс создал /tmp/dest как каталог. Однако, если mv -T /tmp/source /tmp/dest выполняется успешно, нет никаких сомнений, что /tmp/source был переименован в /tmp/dest.В противоположной ситуации, когда вы хотите, чтобы последний операнд рассматривался как каталог и хотите получить диагностическое сообщение в противном случае, вы можете использовать опцию --target-directory (-t).Вопрос 6. Как сделать так, чтобы mv перемещал файл только тогда, когда он новее файла назначения?
Предположим, что существует файл с именем fullnames.txt в каталоге Загрузки вашей системы, и есть файл с тем же именем в вашем домашнем каталоге. Теперь вы хотите обновить ~/Downloads/fullnames.txt с ~/fullnames.txt, но только когда последний новее. В этом случае вам нужно использовать командный параметр -u.
mv -u ~/fullnames.txt ~/Downloads/fullnames.txtЭтот параметр особенно полезен в случаях, когда вам нужно принимать такие решения изнутри сценария оболочки.
Вопрос 7. Как сделать так, чтобы mv выводил детали того, что он делает?
Если вы хотите, чтобы mv выводил информацию, объясняющую, что именно он делает, используйте командный параметр -v.
mv -v [имя_файла] [новое_имя_файла]Например, следующие скриншоты показывают, как mv выводит некоторые полезные детали о том, что именно он сделал.
Вопрос 8. Как заставить mv создать резервную копию существующих файлов назначения?
Это можно сделать, используя командный параметр -b. Резервная копия, созданная таким образом, будет иметь то же имя, что и файл назначения, но с добавленным тильдой (~). Вот пример:
Заключение
Как вы, вероятно, уже догадались, mv так же важен, как cp и rm для функциональности, которую он предлагает - переименование/перемещение файлов также является одной из основных операций. Мы обсудили большинство командных параметров, которые предлагает этот инструмент. Так что вы можете просто попрактиковаться с ними и начать использовать команду. Чтобы узнать больше о mv, перейдите на его страницу man. Также доступны другие учебники по командам Linux на HowtoForge, например, для команды tee.
Get new posts in your inbox
No spam. Unsubscribe anytime.