Linux mv перемещение нескольких файлов

Linux Bash: Move multiple different files into same directory

As a rather novice Linux user, I can’t seem to find how to do this. I am trying to move unique files all in one directory into another directory. Example:

$ ls vehicle car.txt bicycle.txt airplane.html train.docx (more files) 

I want car.txt, bicycle.txt, airplane.html, and train.docx inside vehicle. Right now I do this by moving the files individually:

$ mv car.txt vehicle $ mv bicycle.txt vehicle . 

Please ask your sysadmin or ask at Super User. Stack Overflow is a question and answer site for professional and enthusiast programmers.

@Cyrus: You conflate who vs. what. StackOverflow is not a site for «professional and enthusiast programmers», it is a site for asking questions about programming, among related topics, though programmers of the sort you mention are probably heavily represented.

@Cyrus: I disagree with the wording there as well, and, indeed, any wording that would exclude people who do not self-identify in the way you suggest. The wording «for professional and enthusiast programmers», especially combined with «ask your sysadmin» is dismissive. It says «you are not welcome here», rather than «your question is better suited to another forum».

5 Answers 5

mv car.txt bicycle.txt vehicle/ 

(Note that the / above is unnecessary, I include it merely to ensure that vehicle is a directory.)

You can test this as follows:

cd #Move to home directory mkdir temp #Make a temporary directory touch a b c d #Make test (empty) files ('touch' also updates the modification date of an existing file to the current time) ls #Verify everything is there mv a b c d temp/ #Move files into temp ls #See? They are gone. ls temp/ #Oh, there they are! rm -rf temp/ #DESTROY (Be very, very careful with this command) 

Glad to help, @Kronus. If this was the best answer to your question, or you feel your question’s been answered satisfactorily, please click the big check mark near the up/down vote arrows to accept the answer.

Shorthand command to move all .txt file

You can try using a wildcard. In the code below, * will match all the files which have any name ending with .txt or .docx , and move them to the vehicle folder.

If you want to move specific files to a directory

mv car.txt bicycle.txt vehicle/ 

Edit: As mentioned in a comment, If you are moving files by hand, I suggest using mv -i . which will warn you in case the destination file already exists, giving you a choice of not overwriting it. Other ‘file destroyer’ commands like cp & rm too have a -i option

Читайте также:  Виды файловой системы линукс

I was aware of this, hence adding the ‘(more files)’. I was not explicit enough though. Thank you for sharing!

@Kronus: If you are moving files by hand, I suggest using ‘mv -i . ‘ which will warn you in case the destination file already exists, giving you a choice of not overwriting it. Other ‘file destroyer’ commands like cp & rm too have a -i option. It’s great to have aliases for them in your .bashrc file.

@codeforester Thanks for sharing this information. Its useful for the people who are new and don’t know the in and out of the commands :).

mv command in linux allow us to move more than one file into another directory. All you have to do is write the name of each file you want to move, seperated by a space .

Following command will help you:

mv car.txt bicycle.txt airplane.html train.docx vehicle

mv car.txt bicycle.txt airplane.html train.docx vehicle/

You can move multiple files to a specific directory by using mv command. In your scenario it can be done by,

mv car.txt bicycle.txt airplane.html train.docx vehicle/ 

The point you must note is that the last entry is the destination and rest everything except mv is source.

One another scenario is that the destination is not present in our directory,then we must opt for absolute path in place of vehicles/.

Note: Absolute path always starts from / ,which means we are traversing from root directory.

I have written a small bash script that will move multiple files(matched using pattern) present in multiple directories(matched using pattern) to a single location using mv and find command in bash

#!/bin/bash for i in $(find /path/info/*/*.fna -type f) # find files and return their path do mv -iv $i -t ~/path/to/destination/directory # move files done 
  1. $() is for command substitution(in other words it expand the expression inside it)
  2. /*/ wild card for matching any directory, you can replace this with any wild card expression
  3. *.fna is for finding any file with.fna extension
  4. -type f is for getting the full path info of the located file
  5. -i in mv is for prompt before overwrite( extra caution in case the wild card exp was wrong)
  6. -v for verbose
  7. -t for destination
Читайте также:  Linux tar исключить директорию

NOTE: the above flags are not mandatory

Источник

Команда Linux mv

Команда mv (move) — одна из основных команд Linux. Она используется для перемещения и переименования файлов из каталогов и доступна во всех дистрибутивах Linux.

Использование команды Linux mv с примерами

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

Синтаксис команды mv

mv [ПАРАМЕТР]… ИСТОЧНИК НАЗНАЧЕНИЕ

Переименовывает ИСТОЧНИК в НАЗНАЧЕНИЕ, или перемещает ИСТОЧНИК(и) в КАТАЛОГ.

Опции

—backup[=КОНТРОЛЬ] Создавать резервные копии целевых файлов -b То же, что и —backup , но без аргумента -f, —force Переписывать существующие файлы не спрашивая -i, —interactive Спрашивать перед тем как переписывать -n, —no-clobber Не переписывать существующий файл —strip-trailing-slashes Удалять все конечные косые черты из каждого аргумента ИСТОЧНИК -S, —suffix=СУФФИКС Перекрывать обычный суффикс для резервных копий -t, —target-directory=КАТАЛОГ Перемещать все ИСТОЧНИКИ в КАТАЛОГ -T, —no-target-directory Считать НАЗНАЧЕНИЕ обычным файлом -u, —update Перемещать только, если ИСТОЧНИК новее чем файл назначения, или когда файл назначения отсутствует -v, —verbose Пояснять производимые действия -Z, —context Задать контекст безопасности SELinux файлу назначения как у типа по умолчанию

Если указано более одного параметра -i , -f , -n , то используется последний.

По умолчанию суффикс для запасных копий ~ , если только не установлена переменная окружения SIMPLE_BACKUP_SUFFIX или не задан параметр —suffix .

Способ контроля версий может быть установлен при помощи ключа —backup или переменной окружения VERSION_CONTROL.

none, off Никогда не создавать резервных копий (даже если указан параметр —backup ) numbered, t Создавать нумерованные копии existing, nil Пронумеровать, если уже существуют пронумерованные резервные копии, иначе создавать простые simple. never Всегда создавать простые копии

Примеры использования в Linux команды mv

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

Перемещение файла

Перемещаем файл readme из каталога Directory_Source в существующий пустой каталог Directory_Target :

oleg@mobile:~:$ mv Directory_Source/readme Directory_Target/

Переименование файла

Файл readme в каталоге Directory_Target переименовываем в readme_new :

oleg@mobile:~:$ mv Directory_Target/readme Directory_Target/readme_new 
oleg@mobile:~:$ ls -l Directory_Target/ итого 4 -rw-r--r-- 1 oleg users 145 июл 19 12:48 readme_new

Переименование каталога

Каталог Directory_Target переименовываем в Directory_New :

oleg@mobile:~:$ mv Directory_Target/ Directory_New
oleg@mobile:~:$ ls -l итого 284 . drwxr-xr-x 2 oleg users 4096 июл 20 13:48 Directory_New/ drwxr-xr-x 2 oleg users 4096 июл 20 13:45 Directory_Source/ . 

Резервная копия файла

В исходном каталоге создаем ещё один файл readme :

oleg@mobile:~/Directory_Source:$ touch readme

Для создания резервной копии используется опция -b .:

oleg@mobile:~/Directory_Source:$ mv -b readme ../Directory_Target/
oleg@mobile:~/Directory_Source:$ ls -l ../Directory_Target/ итого 344 -rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg -rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png -rw-r--r-- 1 oleg users 23370 мая 9 11:01 browser-vpn-linux-3.png -rw-r--r-- 1 oleg users 19923 мая 9 11:10 browser-vpn-linux-4.png -rw-r--r-- 1 oleg users 23904 мая 9 11:02 browser-vpn-linux-5.png -rw-r--r-- 1 oleg users 27792 мая 9 11:03 browser-vpn-linux-6.png -rw-r--r-- 1 oleg users 145 июл 20 14:48 readme -rw-r--r-- 1 oleg users 145 июл 19 12:48 readme~

Перед перемещением файла readme в каталог назначения существовавший там файл с тем же именем был переименован в readme~ .

Читайте также:  Postgresql linux посмотреть пользователей

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

Содержимое каталога Directory_Source :

oleg@mobile:~/Directory_Source:$ ls -la итого 360 drwxr-xr-x 2 oleg users 4096 июл 20 14:06 ./ drwx--x--x 68 oleg 100 12288 июл 20 14:06 ../ -rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg -rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png -rw-r--r-- 1 oleg users 23370 мая 9 11:01 browser-vpn-linux-3.png -rw-r--r-- 1 oleg users 19923 мая 9 11:10 browser-vpn-linux-4.png -rw-r--r-- 1 oleg users 23904 мая 9 11:02 browser-vpn-linux-5.png -rw-r--r-- 1 oleg users 27792 мая 9 11:03 browser-vpn-linux-6.png -rw-r--r-- 1 oleg users 145 июл 19 12:48 readme

Переместим 2 файла из текущего каталога в пустой каталог Directory_Target :

oleg@mobile:~/Directory_Source:$ mv browser-vpn-linux-1.jpg browser-vpn-linux-2.png ../Directory_Target
oleg@mobile:~/Directory_Source:$ ls -l ../Directory_Target/ итого 240 -rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg -rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png

Переместим из текущего каталога в каталог назначения файла по маске *.png :

oleg@mobile:~/Directory_Source:$ mv *.png ../Directory_Target
oleg@mobile:~/Directory_Source:$ ls -l ../Directory_Target/ итого 336 -rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg -rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png -rw-r--r-- 1 oleg users 23370 мая 9 11:01 browser-vpn-linux-3.png -rw-r--r-- 1 oleg users 19923 мая 9 11:10 browser-vpn-linux-4.png -rw-r--r-- 1 oleg users 23904 мая 9 11:02 browser-vpn-linux-5.png -rw-r--r-- 1 oleg users 27792 мая 9 11:03 browser-vpn-linux-6.png

Переместим все файлы из текущего каталога в каталог назначения:

oleg@mobile:~/Directory_Source:$ mv * ../Directory_Target
oleg@mobile:~/Directory_Source:$ ls -l ../Directory_Target/ итого 340 -rw-r--r-- 1 oleg users 208937 мая 9 10:54 browser-vpn-linux-1.jpg -rw-r--r-- 1 oleg users 32736 мая 9 10:56 browser-vpn-linux-2.png -rw-r--r-- 1 oleg users 23370 мая 9 11:01 browser-vpn-linux-3.png -rw-r--r-- 1 oleg users 19923 мая 9 11:10 browser-vpn-linux-4.png -rw-r--r-- 1 oleg users 23904 мая 9 11:02 browser-vpn-linux-5.png -rw-r--r-- 1 oleg users 27792 мая 9 11:03 browser-vpn-linux-6.png -rw-r--r-- 1 oleg users 145 июл 19 12:48 readme

К файлам в каталоге назначения добавился остававшийся в исходном каталоге файл readme .

Перемещение файлов, отсутствующих в каталоге назначения

В этом случае используется опция -n :

oleg@mobile:~/Directory_Source:$ mv -n * ../Directory_Target

Перемещение файлов, которые новее

Заменяем существующие файлы более новыми исходными, используя опцию -u :

oleg@mobile:~/Directory_Source:$ mv -u * ../Directory_Target

Заключение

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

Источник

Оцените статью
Adblock
detector