Команда mv в linux. Полное руководство по перемещению и переименованию файлов и каталогов

Подробный обзор команды mv в linux

Команда «mv» в linux (от английского слова — move) — это утилита командной строки, предназначенная для перемещения файлов и директорий, а также их переименования. В данной статье подробно изучим синтаксис и основные опции команды mv, рассмотрим примеры её использования в различных сценариях, а также научимся выполнять интересные задачи с файлами и директориями. Это руководство предназначено как для новичков, так и для опытных пользователей

Синтаксис

Это основной синтаксис команды mv. Можно выполнять перемещение файлов и каталогов с различными параметрами, в зависимости от ваших потребностей.

Вот какие элементы входят в синтаксис команды mv:

  • mv —  Это сама команда, которую вы используете для перемещения файлов и директорий.
  • [ОПЦИИ]… — Здесь вы можете указать дополнительные опции команды mv. Опции представляют собой ключи, начинающиеся с дефиса (например, -f, -i, -n) и используются для управления поведением команды.
  • [-T] — Эта опция -T является необязательной и используется для явного указания, что НАЗНАЧЕНИЕ является именем файла, а не каталогом. Это может быть полезно, если вы хотите переименовать файл, а не переместить его внутри каталога.
  • ИСТОЧНИК — Это имя файла или директории, которое вы хотите переместить или переименовать.
  • НАЗНАЧЕНИЕ — Это целевое имя файла или директории, в которое вы хотите переместить или переименовать ИСТОЧНИК. Если вы используете опцию -t, то НАЗНАЧЕНИЕ должно быть именем каталога, в который вы хотите переместить ИСТОЧНИК.
  • КАТАЛОГ — Это имя каталога, в который вы хотите переместить ИСТОЧНИК, когда используете второй вариант синтаксиса.
  • -t КАТАЛОГ ИСТОЧНИК… — Это третий вариант синтаксиса, который позволяет перемещать несколько файлов (ИСТОЧНИК...) в указанный КАТАЛОГ.

Обратите внимание, что [ОПЦИИ] — это необязательная часть команды mv, и вы можете использовать только саму команду mv с ИСТОЧНИК и НАЗНАЧЕНИЕ, если вам не требуются дополнительные параметры.

Опции

Опции команды «mv» расширяют функциональность и предоставляют контроль над процессами перемещения и переименования файлов и директорий. Выбор параметра зависит от ваших конкретных потребностей и предпочтений. Дополнительные параметры расширяют возможности. Рассмотрим перечень основных опций и их функций:

  • —backup[=CONTROL] — Создает резервную копию каждого существующего файла назначения. Вы можете указать опциональный аргумент CONTROL, который определяет метод создания резервных копий. Примеры значений: none (не создавать резервные копии), numbered (создавать нумерованные резервные копии), existing (создавать нумерованные резервные копии, если уже есть), simple (создавать простые резервные копии).
  • -b — Эквивалентно --backup, но не принимает аргумент.
  • -f, —force — Перемещает файлы без запроса на подтверждение даже в случае перезаписи существующих файлов.
  • -i, —interactive — Запрашивает подтверждение перед перемещением файла, если файл назначения уже существует или если происходит перезапись.
  • -n, —no-clobber — Не перезаписывает существующий файл назначения. Если файл назначения существует, команда mv пропускает перемещение.
  • —strip-trailing-slashes — Удаляет завершающие слэши (/) в именах исходных файлов. Это полезно, если исходные имена содержат лишние слэши.
  • -S, —suffix=SUFFIX — Позволяет указать собственный суффикс для резервных копий файлов назначения. По умолчанию используется суффикс ~.
  • -t DIRECTORY — Перемещает все указанные исходные файлы в указанный каталог DIRECTORY.
  • -T, —no-target-directory — Используется, когда НАЗНАЧЕНИЕ рассматривается как обычный файл, а не как каталог.
  • -u, —update — Перемещает файл только в том случае, если исходный файл новее файла назначения или если файл назначения отсутствует.
  • -v, —verbose — Выводит подробное объяснение о том, какие действия выполняются командой mv. Это полезно для отслеживания процесса.
  • -Z, —context — Устанавливает контекст безопасности SELinux для файла назначения в контекст по умолчанию.
  • —help — Выводит справочную информацию о команде mv.
  • —version — Выводит информацию о версии команды mv.

Для вывода краткой справки по команде используйте вариант mv --help а, чтобы посмотреть подробное руководство используйте команду man mv .

Как переместить файл

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

Где:

  • исходный_файл — это путь к файлу, который вы хотите переместить.
  • файл_назначения — это путь к месту, куда вы хотите переместить исходный файл.

Пример:

Допустим, у вас есть файл file.txt, и вы хотите переместить его из текущей директории в директорию documents. Если вы не знаете как называется ваш текущий каталог используйте команду pwd. Выполните следующую команду:

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

После выполнения этой команды файл file.txt будет перемещен в директорию documents.

Для того, чтобы посмотреть и убедиться, что файл действительно находится в новой папке используйте команду ls.

Перемещение файла командой mv. Пример работы.

Перемещение нескольких файлов одновременно

Для перемещения нескольких файлов одновременно укажите их имена через пробел. Синтаксис операции:

Здесь:

  • файл1, файл2, файл3 — это имена файлов, которые вы хотите переместить.
  • директория_назначения — это путь к целевой директории, куда вы хотите переместить выбранные файлы.
Читайте также:  Как установить Viber на компьютер в Debian linux

Пример:

Допустим есть файлы file1.txt, file2.txt и file3.txt, и я хочу переместить их в директорию documents. Выполняю команду:

После выполнения этой команды файлы file1.txt, file2.txt и file3.txt будут перемещены в директорию documents.

Демонстрация перемещения нескольких файлов.

Создание резервных копий файлов при перемещении

Когда вы перемещаете файлы с помощью команды mv существует опция для создания резервных копий существующих файлов, если файл с таким именем уже существует в целевой директории. Это полезно, чтобы сохранить оригиналы файлов, на случай если что-то пойдет не так.

Для создания резервных копий файлов при перемещении, используйте опцию -b или --backup с командой mv. Вот синтаксис:

Где:

  • исходный_файл — это путь к файлу, который вы хотите переместить.
  • файл_назначения — это путь к месту, куда вы хотите переместить исходный файл.

Пример:

Рассмотрим на примере файла file.txt. Я хочу переместить его в директорию documents. Если в documents уже есть файл с таким именем, то команда mv создаст резервную копию исходного файла. Выполню команду:

После выполнения этой команды файл file.txt будет перемещен в директорию documents, и если там уже был файл с таким именем, то будет создана резервная копия исходного файла с добавлением суффикса. Например, file.txt может быть скопирован как file.txt~.

Команда mv в linux. Полное руководство по перемещению и переименованию файлов и каталогов
Это помогает избежать потери данных и обеспечивает безопасность при перемещении файлов.

Перемещение файлов, которых нет в целевой директории. Опция -u

Команда mv в Linux позволяет перемещать файлы в другую директорию, учитывая их актуальность. С опцией -u (или --update) можно перемещать файлы только в том случае, если исходный файл новее, чем файл с аналогичным именем в целевой директории, или если файл с таким именем отсутствует в целевой директории.

Это полезно, когда вы хотите обновить файлы только тогда, когда они изменились. Вот синтаксис:

Где:

  • [исходный_файл] — это путь к файлу, который вы хотите переместить.
  • [файл_назначения] — это путь к директории, в которую вы хотите переместить исходный файл.

Пример:

Допустим у меня есть файл в домашней директории с названием file.txt, и я перемещу его в папку documents. Команда такая:

Если файл file.txt новее, чем файл с аналогичным именем в директории documents, или если такого файла в documents нет, то команда выполнит перемещение. Это обеспечивает только актуальное обновление файлов в целевой директории.

Перемещение с обновленным файлом

Работа с файлами, имена которых содержат пробелы

При перемещении файлов в Linux, имена которых содержат пробелы, следует использовать кавычки или обратные слэши (escape-символы), чтобы обеспечить правильное распознавание имен файлов.

Использование кавычек:

Можно заключить имена файлов в одинарные или двойные кавычки. Это предотвращает разбор имен на части, разделенные пробелами.

Пример с одинарными кавычками:

Пример с двойными кавычками:

Использование обратных слэшей:

Другой способ — экранирование пробелов с помощью обратных слэшей:

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

Пример перемещения файла с пробелом. Рассмотрим такой вариант, файл file с пробелом.txt перенесу в каталог documents . Команда:

Пример перемещения файла в имени которого есть пробел.

 

Как переименовать файлы

Переименование файла — это распространенная операция. Ниже приведен синтаксис и пример использования консольной команды mv для переименования файлов.

Где:

  • [исходное_имя_файла] — это текущее имя файла, который вы хотите переименовать.
  • [новое_имя_файла] — это имя, которое вы хотите присвоить файлу после переименования.

Пример:

Предположим, у вас есть файл old_file.txt, и вы хотите переименовать его в new_file.txt. Выполните следующую команду:

После выполнения этой команды файл old_file.txt будет переименован в new_file.txt.

Демонстрация переименование файла.

Переименование папки

Переименование папки также выполняется с помощью команды mv. Это действие позволяет изменить имя директории, сохраняя ее содержимое и структуру. Вот синтаксис и пример переименования папки с использованием команды mv:

Где:

  • [исходная_папка] — это текущее имя папки, которую вы хотите переименовать.
  • [новое_имя_папки] — новое имя, которое вы хотите присвоить папке.

Пример:

Допустим, у вас есть папка с именем oldfolder, и вы хотите переименовать ее в newfolder. Выполните команду:

После выполнения этой команды имя папки будет изменено, при этом содержимое директории останется неизменным.

Изменение имени каталога с помощью команды mv.

Как перенести папку в другую папку

Вот синтаксис и пример перемещения папки с использованием команды mv:

Читайте также:  Как создать архив в linux

Где:

  • [исходная_папка] — это текущий каталог, который требуется переместить.
  • [путь_к_новому_местоположению/] — это путь к новому местоположению, куда вы хотите переместить папку.

Здесь также можно указать абсолютный путь или относительный.

Примеры. Перемещение с абсолютным путем:

Допустим, у меня есть папка с именем my_folder, и я хочу переместить ее в директорию /home/chuzhoy007_ru/documents/. Команда будет такой:

Перемещение с относительным путем (из текущей папки):

Переместим туже папку не указывая полный путь. Команда:

Перемещение папки.

Как перемещать несколько каталогов

Для перемещения нескольких каталогов нужно указать их названия через пробел.

Синтаксис данной операции:

Здесь

  • каталог1, каталог2, каталог3 — и так далее — это имена каталогов, которые вы хотите переместить.
  • путь_к_новому_местоположению — это путь к новому местоположению, куда вы хотите переместить указанные каталоги.

Пример:

В этом примере каталоги video, doc и music будут перемещены в новое местоположение media/. Вы можете указать любое количество каталогов для перемещении. Указываем команду:

Перемещение нескольких папок.

Запрашивать подтверждение перед перезаписью. Опция -i

Опция -i позволяет контролировать процесс перемещения файлов или каталогов и предотвращать случайную перезапись существующих данных в целевой директории. Когда вы используете её будет запрашивать ваше подтверждение, если файл с таким же именем уже существует в целевой директории.

Таким образом, опция -i служит дополнительным механизмом безопасности, предотвращающим потерю данных из-за случайной перезаписи файлов.

Вот пример использования опции -i с командой mv:

Если файл с таким именем уже существует в целевой директории, команда mv запросит подтверждение перед перезаписью. Вы сможете ввести «y» (да) или «n» (нет) в зависимости от вашего решения.

Например:

Если файл file.txt уже существует в директории documents, команда mv спросит:

Чтобы файл был перезаписано можно указать; «y, yes, да, д», чтобы отказаться можно указать «n, no, н, нет».

Демонстрация опции -i при перемещении файла.

Принудительная перезапись. Опция -f

Для выполнения принудительной перезаписи файлов можно добавить опцию -f или --force. Эта опция заставляет команду mv перезаписывать существующие файлы без запроса на подтверждение от пользователя.

Важно помнить, что использование опции -f может привести к потере данных, так что будьте осторожны и убедитесь, что вы перезаписываете файлы и каталоги правильно.

Пример:

У меня есть файл file.txt, и нужно переместить его в директорию documents, и, если файл с таким именем уже существует в этой директории, перезаписать его без запроса на подтверждение:

Эта команда перезапишет файл file.txt в директории documents, если он уже существует, без запроса на подтверждение.

Демонстрация работы mv с опцией -f

Не перезаписывать существующие файлы. Опция -n

Опция -n или --no-clobber в команде mv предназначена для предотвращения перезаписи существующих файлов. Если вы хотите переместить или переименовать файл, но не хотите, чтобы он перезаписал существующий файл с тем же именем, вы можете использовать эту опцию.

Пример:

Рассмотрим на примере файла file.txt, который я хочу переместить в директорию documents. Однако, файл с таким именем уже существует в этой директории, я не хочу, чтобы он был перезаписан. Для этого используем опцию -n следующим образом:

Если файл с именем file.txt уже существует в директории documents, команда mv не выполнит перемещение.

Демонстрация опции -n для команды mv

Подробный вывод. Опция –verbose

Для вывода подробной информации о процессе перемещения файлов и каталогов используется параметр -v или --verbose. Это полезно, когда вы хотите видеть, какие файлы были перемещены и куда, а также получить дополнительную информацию о выполнении команды mv.

Пример:

Разберем пример переноса файла file.txt в папку documents. Я хочу видеть подробный вывод о процессе перемещения. Используем опцию --verbose следующим образом:

После выполнения этой команды, вы увидите информацию о том, какой файл был перемещен и куда:

Такой подробный вывод помогает отслеживать, какие операции выполняются, и следить за процессом перемещения файлов в реальном времени.

Заключение

В этой статье я рассказал вам о команде mv в Linux и подробно рассмотрел различные аспекты перемещения и переименования файлов и директорий. Мы начали с основ, изучив синтаксис и поняли, как просто перемещать файлы и директории между разными местами на диске.

Мы также рассмотрели специфические сценарии, такие как переименование файлов и директорий, перемещение между каталогами, создание резервных копий при перемещении и  перемещение файлов, которых нет в целевой директории. Вы узнали о полезных опциях, таких как -i для подтверждения перед перезаписью и -n для предотвращения перезаписи существующих файлов.

(Visited 257 times, 1 visits today)
Михаил Чужой

Администратор сайта. Веду записи об использовании компьютера для людей.

CHUZHOY007.ru
Добавить комментарий