Я хотів би знати, як я міг перемістити всі файли з папки в іншу папку з командним рядком.
Скажімо, я перебуваю в папці "Завантаження", і є 100 файлів, які я хотів би перенести у свою папку "Відео", без того, щоб писати всі назви файлів.
Я хотів би знати, як я міг перемістити всі файли з папки в іншу папку з командним рядком.
Скажімо, я перебуваю в папці "Завантаження", і є 100 файлів, які я хотів би перенести у свою папку "Відео", без того, щоб писати всі назви файлів.
Відповіді:
Відкрийте термінал і виконайте цю команду:
mv -v ~/Downloads/* ~/Videos/
Він перемістить усі файли та папки із папки "Завантаження" у папку "Відео".
Щоб перемістити всі файли, але не папки:
Якщо вас цікавить переміщення всіх файлів (але не папок) із папки "Завантаження" у папку "Відео", скористайтеся цією командою
find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos
Щоб переміщувати лише файли з папок Завантажити, але не з підпапок:
Якщо ви хочете перемістити всі файли з папки "Завантаження", але не будь-які файли в папках у папці "Завантажити", скористайтеся цією командою:
find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos
тут -maxdepth
параметр вказує, як слід спробувати глибоке знаходження, 1
означає лише каталог, вказаний у команді find. Ви можете спробувати використовувати 2
, 3
також для тестування.
-print0 | xargs -0 mv -t ~/Videos
можна зробити більш ефективно з -exec mv -t ~/Videos \{\} \+
:-)
mv -v ~/Downloads/* ~/Videos/
не працює для прихованих файлів
mv ~/Downloads/* ~/Videos
Він перемістить усі файли, включаючи папки в потрібний каталог mv
. Якщо ви хочете cp
(скопіювати) або rm
(видалити), вам знадобиться -r
(рекурсивна) опція, щоб включити підпапки.
mv
не потрібен рекурсивний варіант для включення вкладених папок. Можна використовувати його і для перейменування.
Для простого випадку:
mv ~/Downloads/* ~/Videos
Якщо ви також хочете перемістити точкові (приховані) файли, то встановіть параметр оболонки dotglob .
shopt -s dotglob
mv ~/Downloads/* ~/Videos
Це залишає набір параметрів оболонки.
Одноразове використання dotglob, запустіть команди в нижній частині:
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
лише переміщує (вирізає) вміст (включаючи приховані файли). У цьому випадку і початкові, і цільові папки повинні вже існувати. Наприкінці каталог початків стає порожнім.
Це можливо, використовуючи rsync
, наприклад:
rsync -vau --remove-source-files src/ dst/
де:
-v
,--verbose
: Збільшення багатослівності.
-a
,--archive
: Режим архіву; дорівнює-rlptgoD
(немає-H
,-A
,-X
).
-u
,--update
: Пропускайте новіші файли на приймачі.
--remove-source-files
Це говоритьrsync
про видалення з боку надсилання файлів (маючи на увазі не-каталоги), які є частиною передачі та успішно дублюються на приймальній стороні.
Якщо у вас є root права, префікс, sudo
щоб вирішити можливі проблеми з дозволом.
Щоб перемістити каталог із вмістом або без вмісту до його нового імені так само, як ви використовуєте mv
команду для перейменування файлу:
mv -T dir1 dir2
де:
-T
трактує призначення як звичайний файлdir1
є оригінальною назвою каталогуdir2
- це нова назва каталогуNB: dir2
не повинно існувати.
Я сподіваюся, що це економить комусь багато часу, як noob, перед цим я створив би каталог з новою назвою, а потім перемістив вміст каталогу до створеного раніше каталогу.
Використовувати для підкаталогів
Ця команда корисна, коли багато файлів збережено у підпапці цільового каталогу, тобто Downloads/mp4
. У цьому прикладі запуск mv -T Downloads/mp4 Videos
призведе до видаленняmp4
підпапки, а всі файли, що містяться всередині, переміщуються до папки Відео.
dir1
до видалення. Окрім цієї обережності, ця відповідь зазначила щось хороше для щоденного використання.
mv fileA fileB
але -T
прапор у цьому випадку трактує цільове місце / каталог як файл та перейменовує його.
cd folderNamehere
pwd
. Це надрукує каталог, який ви також хочете перемістити.cd folderNamehere
mv *.* typeAnswerFromStep2here
Це перемістить усі файли з цього каталогу до іншого.
foo.txt
, bar.
а bar
так bar.
і bar
НЕ буде переміщена. Використання *
замість того, щоб *.*
подбати про це. Але в обох випадках приховані файли типу: .foobar
не будуть переміщені.
mv source_path/* destination_path/
тут ви повинні висунути косу *
рису і після вихідного контуру, щоб він зайняв файли всередині source_path замість повного каталогу джерела.
Приклад: mv /home/username/test/* /home/username/test2/
Наведена вище команда переміщує всі файли (якщо вони не приховані) у вихідному каталозі до каталогу призначення.
Спробуй це
find ~/Desktop -type f -iname "*.mp4" -exec mv {} ~/Videos \;
-type з аргументом -type ви можете вказати тип file.on це твердження, що є середнім file.if, використовуючи -d, що означає каталог.
-iname: найпоширенішим і очевидним методом пошуку файлу є використання його -name argument.if ви не впевнені в його чутливості до регістру, ви можете використовувати аргумент -iname
mv {} і, нарешті, вказати цільовий каталог, а потім перемістити файли туди за допомогою аргументу mv {}
files
але люди показують, як рухатись не тільки,files
але йfolders
також. Це нормально?