Как одновременно переместить несколько типов файлов из командной строки
На днях я искал способ перемещения (а не копирования) файлов нескольких типов из одного каталога в другой. Я уже знал, как находить и копировать файлы определенного типа из одного каталога в другой. Но я не знаю, как одновременно перемещать несколько типов файлов. Если вы когда-либо оказывались в подобной ситуации, вот простой способ сделать это из командной строки в Linux.
Переместить несколько одинаковых или разных типов файлов легко! Вы можете сделать это парой щелчков мыши в режиме графического интерфейса или использовать однострочную команду в режиме CLI. Однако если у вас есть сотни разных типов файлов в каталоге и вы хотите переместить несколько типов файлов в другой каталог за один раз, это будет обременительной задачей. К счастью, следующий метод легко справился со мной!
Перемещение нескольких типов файлов одновременно в Linux
Представьте себе этот сценарий. У вас есть файлы нескольких типов, например .pdf, .doc, .mp3, .mp4, .txt и т. д., в каталоге с именем 'dir1'.
Давайте посмотрим на содержимое этого каталога:
$ ls dir1
file.txt image.jpg mydoc.doc personal.pdf song.mp3 video.mp4
Вы хотите переместить некоторые типы файлов (не все) в другое место. Например, предположим, что вы хотите переместить файлы doc, pdf и txt в другой каталог с именем 'dir2' за один раз.
Чтобы одновременно переместить файлы .doc, .pdf и .txt из каталога 1 в каталог 2, команда будет такой:
mv dir1/*.{doc,pdf,txt} dir2/
Это легко, не так ли?
Теперь давайте проверим содержимое каталога dir2:
$ ls dir2/
file.txt mydoc.doc personal.pdf
Видеть? типы файлов .doc, .pdf и .txt из каталога 1 были перенесены в каталог 2.
Вы можете добавить столько типов файлов, сколько хотите, в фигурные скобки в приведенной выше команде, чтобы перемещать их по разным каталогам. Приведенная выше команда отлично работает у меня на Bash.
Другой способ перемещения файлов нескольких типов — перейти в исходный каталог, т.е. в нашем случае dir1:
cd ~/dir1
И переместите выбранные вами типы файлов в место назначения (например, dir2), как показано ниже.
mv *.doc *.txt *.pdf /home/sk/dir2/
Чтобы переместить все файлы с определенным расширением, например только .doc , выполните:
mv dir1/*.doc dir2/
Более подробную информацию можно найти на страницах руководства.
man mv
Если вы знаете какие-либо другие однострочные команды для одновременного перемещения файлов нескольких типов, поделитесь ими в разделе комментариев ниже. Я проверю и обновлю руководство соответствующим образом.