Описание команды mv
Команда mv используется для перемещения одного или нескольких файлов (или директорий) в другую директорию, а также для переименования файлов и директорий.
Синтаксис
исходные_файлы — это то, что мы будем перемещать или переименовывать. То есть это либо один файл, либо несколько файлов, либо директория, либо несколько директорий.
куда — это название директории, в которую мы перемещаем исходные файлы или директории. Или же это новое название файла или директории, если выполняется переименование. То есть это либо директория, либо новое название файла или директории.
Команда mv может:
- Переместить один или несколько файлов в другую директорию.
- Переместить одну или несколько директорий в другую директорию.
- Переименовать файл.
- Переименовать директорию.
Опции
Имя для резервной копии может создаваться по определенным правилам. Для этого используется опция --backup=МЕТОД В качестве значения МЕТОД можно указать:
- none или off — не делать резервных копий, даже если включена опция --backup
- numbered или t — имя резервной копии получит числовой индекс (пример: myfile.txt~2~).
- existing или nil — если в директории уже есть резервные копии с числовыми индексами, то использовать числовые индексы для новых резервных копий, во всех остальных случаях использовать метод simple.
- simple или never — делать обычные резервные копии (пример: myfile.txt~).
Примеры использования команды 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
Комментарии
04:50
23:21