- Linux mv command
- Syntax
- Options
- Backing up files
- Version control methods
- Examples
- Making backups
- Renaming using regular expressions
- Related commands
- Использование команды mv в Linux
- Синтаксис
- Опции
- Перемещение файлов и папок
- Переименование объектов и директорий
- Создание резервных копий объектов
- Перемещение нескольких файлов одновременно
- Перемещение отсутствующих в целевой директории файлов
Linux mv command
On Linux operating systems, the mv command moves and renames files and directories.
Syntax
Rename a file named source to destination:
Move source file(s) to a directory named destination:
Same as the previous syntax, but specifying the directory first, and the source file(s) last:
Options
—backup[=vcm] | Make a backup of each existing destination file, using the version control method vcm. If vcm is omitted, —backup behaves the same as -b (backups are created, using the default version control method). See backing up files for details. |
-b | Like —backup, but does not accept a backup method. Instead, the method specified by the VERSION_CONTROL environment variable is used. Simple backups are created if the variable is not set. See version control methods for details. |
-f, —force | Always overwrite existing files without prompting. This can be useful if you need to overwrite multiple files whose permissions are read-only; if you don’t specify -f, you are prompted for every file. |
-i, —interactive | Prompt before overwriting an existing file, regardless of the file’s permissions. |
-n, —no-clobber | Never overwrite any existing file. |
If you specify more than one of the options above, only the final option you specify takes effect.
—strip-trailing-slashes | Remove any trailing slashes from each source argument. |
-S, —suffix=suffix | Specify the file name suffix to be used for all backup files. The default is » «. |
-t, —target-directory=destination | Move all sources into the directory destination. |
-T, —no-target-directory | Treat destination as a normal file, not as a directory. |
-u, —update | Don’t overwrite files if they’re newer. A move only happens if the destination file is older than the source file, or the destination file does not already exist. |
-v, —verbose | Provide verbose output. Print the name of every file moved. |
—help | Display a help message, and exit. |
—version | Display version information, and exit. |
Backing up files
If you use the -b or —backup options, mv renames the destination file if it exists, appending a suffix to its file name. This saves a copy of the original file instead of overwriting it.
There are two types of backups: simple and numbered.
- Simple backups delete an existing backup file if it already exists. Only one backup file is kept. The default suffix for «simple» backups is a tilde (»
«). You can change this suffix with the —suffix option, or by setting the SIMPLE_BACKUP_SUFFIX environment variable. For example, file.txt would be backed up as file.txt
.
Numbered backups keep existing backup files, creating additional backups with an incrementing number in the file name. No backup files are deleted. The suffix for numbered backups is «.
«, where n is an integer. For example, file.txt would be backed up as file.txt.
Version control methods
Additional rules for creating backup files are available, called version control methods. The version control method may be specified with the —backup option, or by setting the environment variable, VERSION_CONTROL. The methods are:
Method name | Description |
---|---|
none, off | Never make backups, even if the —backup option is given. |
numbered, t | Make numbered backups. |
existing, nil | numbered if numbered backups already exist, simple otherwise. |
simple, never | Always make simple backups. |
Examples
Move the file myfile.txt into the directory myfiles. If myfiles is a file, it is overwritten. If the file is marked as read-only, but you own the file, you are prompted before overwriting it.
If myfiles is a file or directory, and myfiles2 is a directory, move myfiles into myfiles2. If myfiles2 does not exist, the file or directory myfiles is renamed myfiles2.
Move the file myfile.txt to the parent directory of the current directory.
Move the files myfile1 and myfile2 to the directory myfiles.
Same as the previous command.
If file2 exists and is a directory, file is moved into it. If file2 does not exist, file is renamed file2. If file2 exists and is a file, nothing happens.
If file2 exists and is a file, it is overwritten.
If file2 exists and is a file, a prompt is given:
Entering «y», «yes», «Yes», or «Y» results in the file being overwritten. Any other input skips the file.
Same as mv -i. Prompt before overwriting. The f option is ignored.
Same as mv -f. Overwrite with no prompt. The i option is ignored.
Rename the file «My file.txt» to «My file 2.txt«. Here, the spaces in the file name are escaped, protecting them from being interpreted as part of the command.
Same as the previous command.
The result of this command:
- If myfiles a directory, My file.txt is moved into myfiles.
- If myfiles a file, My file.txt is renamed myfiles, and the original myfiles is overwritten.
- If myfiles does not exist, My file.txt is renamed myfiles.
Here, * is a wildcard meaning «any number, including zero, of any character.»
- If myfiles is a directory: all files with the extension .txt, whose name begins with My, are moved to myfiles.
- If myfiles does not exist or is not a directory, mv reports an error and does nothing.
Here, ? is a wildcard meaning «zero or one of any character.» It’s used twice, so it can match a maximum of two characters.
- If myfiles is a directory: any file with zero, one, or two characters between My file and .txt in their name is moved into myfiles.
- If myfiles doesn’t exist, or is not a directory, mv reports an error and does nothing.
For more information about how wildcards are used in commands, see pathname expansion in bash.
Making backups
If file2 exists, it is renamed to file2
If file2 exists, it is renamed to file2.bak.
If file2 exists, it is renamed file2.
exists, it is renamed file2.
Same as previous command. The environment variable is defined for this command only.
By exporting the VERSION_CONTROL environment variable, all mv -b commands for the current session use numbered backups.
Even though the VERSION_CONTROL variable is set, no backups are created because -b (or —backup) was not specified. If file2 exists, it is overwritten.
Renaming using regular expressions
If you need to rename many files using a complex or nuanced mapping from old to new file names, you use the rename command instead.
rename accepts perl regular expressions. For example:
This command renames files My file.txt and My file 2.txt to document.txt and document 2.txt.
Related commands
cp — Copy files and directories.
ln — Create a link, or a symbolic link, to a file or directory.
rename — Renames multiple files using a regular expression.
rm — Remove a directory.
Источник
Использование команды mv в Linux
Синтаксис
mv — одна из стандартных команд дистрибутивов, основанных на ядре Linux. О ней должен знать каждый пользователь, желающий изучить основные терминальные команды, чтобы через консоль выполнять любые необходимые действия. Эта утилита позволяет переименовать директории и отдельные объекты, а также перемещать их. Конечно, эти же действия можно осуществить и через графический интерфейс, но не всегда имеется к нему доступ или же требуется произвести поставленную задачу через «Терминал», не отвлекаясь на окружение рабочего стола. Задействовать команду mv в консоли очень просто, поскольку ее синтаксис не является сложным, а доступные опции можно выучить буквально за несколько минут, лишь взглянув на них. Однако мы все же обратим отдельное внимание на правила ввода и присутствующие аргументы, чтобы даже у начинающих пользователей больше не осталось вопросов по этой теме. Начать предлагаем с синтаксиса, а именно — с правил составления строки действия в консоли.
Как известно, синтаксис в программировании отвечает за правила ввода слов при составлении одного или нескольких запросов. Не обошло это правило и рассматриваемую сегодня команду. От последовательностей составления строки и зависит, выполнится ли требование пользователя корректно. Правильность написания выглядит так: mv + опции + исходные_файлы + место_назначения . Давайте более детально рассмотрим каждый фрагмент, чтобы вы могли понять его роль:
- mv — соответственно, вызов самой утилиты. Всегда является началом строки, за исключением установки аргумента sudo, отвечающего за выполнение команды от имени суперпользователя. Тогда строка приобретает вид sudo mv + опции + исходные_файлы + место_назначения .
- опции — устанавливаемые дополнительные задачи, например, выполнение резервного копирования, перезапись файлов и другие действия, о которых мы поговорим в отдельном разделе сегодняшнего материала.
- исходные_файлы — те объекты или директории, с которыми вы хотите произвести действие, например, переименовать или переместить.
- место_назначения — указывается при перемещении объектов, а если будет осуществляться переименования, то указывается новое название.
Это все правила ввода, которые необходимо запомнить. Больше никаких особенностей не имеется, поэтому можно переходить к разбору доступных опций.
Опции
Вы уже знаете, что опции — дополнительные аргументы в виде букв, которые указываются при необходимости произведения командой дополнительных действий. Практически все существующие в Linux команды могут выполняться с одной или несколькими опциями, что относится и к mv. Ее возможности направлены на следующие задачи:
- —help — выводит на экран официальную документацию об утилите. Пригодится, если вы забыли другие опции и желаете быстро получить общую сводку.
- —version — отображает версию mv. Практически никогда не используется пользователями, поскольку определение версии данного инструмента практически никогда не требуется.
- -b / —backup / —backup=МЕТОД — создает копию файлов, которые были перемещены или перезаписаны.
- -f — при активации не будет спрашивать разрешение у владельца файла, если речь идет о перемещении или переименовании файла.
- -i — наоборот, будет спрашивать разрешение у владельца.
- -n — отключает перезапись уже существующих объектов.
- —strip-trailing-slashes — удаляет завершающий символ / у файла при его наличии.
- -t ДИРЕКТОРИЯ — перемещает все файлы в указанную директорию.
- -u — осуществляет перемещение только в том случае, если исходный файл новее объекта назначения.
- -v — отображает сведения о каждом элементе во время обработки команды.
В будущем вы можете использовать приведенные выше опции, чтобы указывать их в одной строке во время переименования или перемещения отдельных объектов или директорий. Далее предлагаем более детально разобраться с самыми популярными примерами взаимодействия с командой mv, остановивших на всех основных действиях.
Перемещение файлов и папок
Из приведенной выше информации вы уже знаете, что рассматриваемая сегодня команда используется для перемещения файлов. Для этого потребуется запустить «Терминал» удобным способом и написать там mv myfile1.txt mydir/ , заменив указанное имя файла и конечную папку на необходимые. Если объект находится не в текущей директории, следует прописать полный путь к нему, о чем мы еще поговорим далее. То же самое можно выполнить и с отдельной папкой.
Переименование объектов и директорий
Второе предназначение консольной утилиты mv — переименование объектов. Производится это тоже через одну команду. Выше мы пообещали показать, как именно осуществляется операция с указанием полного пути. В таком случае строка обретает вид mv /home/lumpics/Рабочий стол/test.txt test2.txt , где /home/lumpics/Рабочий стол/test.txt — необходимое расположение объекта с учетом его названия и расширения, а test2.txt — имя, которое будет ему присвоено после активации команды.
Если нет желания указывать полный путь к объекту или каталогу, например, когда требуется произвести несколько действий в одной сессии, рекомендуется переместиться к расположению, вписав команду cd . После этого полный путь писать не нужно.
После этого давайте переименуем папку через mv test1 test , где test1 — изначальное название, а test1 — конечное.
Сразу же после нажатия на клавишу Enter вы увидите новую строку ввода, а это означает, что все изменения прошли успешно. Сейчас можно открыть файловый менеджер или любое другое средство, чтобы проверить новое название каталога.
Создание резервных копий объектов
При ознакомлении с опциями команды можно было заметить аргумент -b. Именно он отвечает за создание резервных копий. Правильное оформление строки выглядит так: mv -b /test/test.txt test1.txt , где /test/test.txt — непосредственный путь к файлу, а test1.txt — название для его резервной копии.
По умолчанию объекты резервных копий в конце своего названия имеют символ
, соответственно, команда mv тоже создает его автоматически. Если вы желаете изменить это, следует использовать строку mv -b -S «.txt» test.txt test1.txt при создании резервной копии. Здесь вместо «.txt» напишите оптимальное для вас расширение файла.
Перемещение нескольких файлов одновременно
Иногда возникает надобность переместить сразу несколько файлов. С этой задачей прекрасно справляется рассматриваемая сегодня утилита. В «Терминале» вам следует ввести лишь mv myfile1 myfile2 myfile3 mydir/ , заменив названия объектов и конечную папку на необходимые.
Если команды из консоли сейчас активируются из той директории, где располагаются все файлы для перемещения, используйте mv * mydir/ , чтобы сразу же перебросить их все в указанный каталог. Так вы сэкономите значительное количество времени на поочередном перемещении или ручном вводе имен всех объектов.
То же самое относится к элементам с одинаковым форматом. Если есть желание переместить, например, только изображения типа JPG, следует изменить строку на mv *.jpg mydir . То же самое касается и всех других известных типов файлов.
Перемещение отсутствующих в целевой директории файлов
Случаются ситуации, когда в определенную директорию нужно переместить ряд файлов, однако некоторые из них уже имеются в данном каталоге. Тогда требуется использовать опцию -n, чтобы в итоге команда обрела вид mv -n mydir1/* mydir2/ . Здесь замените указанные папки на необходимые, чтобы перемещение прошло корректно.
Как видите, команда mv может использоваться для разных целей и с определенными аргументами, которые позволяют без каких-либо проблем переименовать или переместить группу объектов либо какой-то конкретный файл. Если вас заинтересовало взаимодействие с другими стандартными консольными утилитами в Linux, советуем изучить материалы по данной теме, воспользовавшись приведенными ниже ссылкам.
Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Источник