Jak mohu zkopírovat soubory ve složce do jiné složky v terminálu Linux

How Can I Copy Files Folder Into Another Folder Linux Terminal



Když potřebujete zkopírovat obsah adresáře do jiného, ​​v případě Linuxu máte k dispozici spoustu nástrojů. Který použít? Záleží na situaci a osobních preferencích. V tomto článku se podíváme na způsoby, jak můžete zkopírovat obsah souboru z jedné složky do druhé v terminálu. Bude obsahovat některé z oblíbených možností pro různé situace.

Kopírování souborů v terminálu

Zkopírování obsahu jednoho adresáře do druhého je velmi jednoduchý úkol. Máte však spoustu možností, jak to udělat. Linux má mnoho nástrojů pro manipulaci se soubory a adresáři pomocí různých akcí.







Všechny kroky jsou ukázány na Ubuntu 18.04.1. Nejprve vytvoříme hrst fiktivních souborů, se kterými budeme pracovat.



$mkdir -protidir_A



Nyní vytvořme fiktivní soubory dotykem.





$dotekfigurína{1..10}

Vytvořme v adresáři dir_A další složku s hrstkou fiktivních souborů.



$mkdir -protidir_B
$dotekfigurína{1..10}

Celá struktura adresáře dir_A nyní vypadá takto.

$stromdir_A

Příkaz Cp

The cp příkaz je zdaleka nejběžnějším nástrojem pro kopírování souborů. Je to nástroj, který je standardně dodáván s jakýmkoli systémem Linux. Kopírování souborů a adresářů je jediným účelem cp. Podporuje širokou škálu funkcí.

Toto je základní struktura cp příkaz.

$cp <možnosti> <zdroj> <destinace>

Vytvořme si například kopii souboru figurína 1 soubor s názvem dummy1_copy .

$cpdummy1 dummy1_copy

Nyní zkusme kopírovat více souborů najednou. Pro takovou operaci vyžaduje cp, aby byl cíl adresář. Zde použiji zástupný výraz, abych zachytil vše figurína soubory a vložte je do souboru ~/Stahování adresář.

$cpfigurína*~/Soubory ke stažení

Co takhle zkopírovat adresář?

$cp -vrdir_A dir_A_copy

Zde jsme použili dvě různé vlajky. Pojďme si je rychle rozebrat.

  • -r: Znamená a rekurzivní kopie (včetně skrytých souborů). Pokud kopírování zahrnuje celý adresář nebo více, musí mít příznak.
  • -v: Znamená podrobný . Nástroj cp vydá každou jednotlivou akci, kterou provádí.

Chcete sledovat symbolické odkazy? Přidejte příznak -L.

$cp -Lvr <zdroj> <destinace>

Řekněme, že cílový adresář již má soubor se stejným názvem. Pokud se chcete vyhnout přepisování, použijte příznak -n. Zajistí, že v případě konfliktu cp nepřepíše soubor.

$cp -nv <zdroj> <destinace>

Pokud provádíte citlivou akci kopírování/vkládání, je lepší mít nejlepší kontrolu nad tím, co se stane, že? V takovém případě použijte příznak -i. Jedná se o interaktivní režim, kde cp požádá o potvrzení pokaždé, když dojde ke konfliktu.

$cp -i <zdroj> <destinace>

Pokud vás zajímá více, manuální stránka je vždy jednou z nejlepších dokumentací. Další informace o CP

$muž cp

mv příkaz

Nástroj mv je podobný nástroju cp. Místo kopírování však mv přesouvá soubory a adresáře. Ve srovnání s cp je to jednodušší.

Struktura příkazu mv je podobná cp.

$mv <volba> <zdroj> <destinace>

Chcete -li přesunout obsah dir_A na dir_A_copy , spusťte následující příkaz.

$mv -protidir_A/dir_A_copy

Zde je příznak -v pro podrobný režimu. Pokud chcete přesunout pouze obsah dir_A, použijte místo toho následující. V tomto případě musí cílový adresář existovat předem.

$mv -protidir_A/ *dir_A_copy

Nástroj mv nemá moc práce. Všechny dostupné možnosti najdete na manuálové stránce.

$muž mv

Příkaz Rsync

Jedná se o jeden z nejpopulárnějších a nejúčinnějších nástrojů pro kopírování souborů, který se používá hlavně pro zálohování. Má schopnost kopírovat soubory přes vzdálené připojení. Na rozdíl od cp a mv přichází také s řadou pokročilých možností kopírování souborů, které nabízejí maximální přizpůsobení jeho chování.

Rsync je většinou známý pro svůj algoritmus přenosu delta, který dramaticky snižuje množství dat, která je třeba vyměňovat. V případě vzdálené synchronizace to ušetří spoustu šířky pásma.

Rsync obvykle není předinstalován v žádném distribuci Linuxu. Díky své popularitě je však nyní k dispozici ve všech hlavních distribucích Linuxu. Použití Pkgs.org zjistit balíček rsync pro vaše distro. Za předpokladu, že jste nainstalovali rsync, pojďme začít.

Nejprve základní struktura příkazů rsync. Je to docela podobné cp.

$rsync<možnosti> <zdroj> <destinace>

Než začnete, zde je několik populárních argumentů rsync.

  • -proti : Podrobný režim, výstup jakékoli akce prováděné na obrazovce konzoly.
  • -vv : Podrobný režim s dalšími podrobnostmi
  • -r : Rekurzivní režim, musí být přítomen při kopírování adresářů
  • -S : Komprimujte data
  • -na : Data archivu
  • -n : Suchý běh, měl by být spuštěn v kombinaci s podrobným režimem. Jednoduše vydá akce, pokud měl příkaz běžet skutečně
  • -vymazat : Smažte soubory a adresáře v cílovém adresáři, pokud je zdrojový adresář již neobsahuje
  • -no-celý soubor : Nutí rsync používat svůj algoritmus přenosu delta, bez ohledu na to. Užitečné ve scénářích, kde musíte zajistit nejmenší množství zápisu dat.
  • –Odstranit-zdrojový soubor : Odstranit zdrojové soubory po zkopírování.

Pojďme se na ně podívat v akci. Nejprve zkopírujte adresář. Spusťte následující příkaz.

$rsync-vrdir_A/dir_A_copy

Pro další podrobný výstup použijeme příznak -vv.

$rsync-vv -rdir_A/dir_A_copy

Nyní se podívejme na skvělou část rsync. Diskutovali jsme o tom, jak rsync inteligentně kopíruje pouze soubory, které jsou upraveny, čímž šetří šířku pásma a zápis na disk. Je načase to zkontrolovat v akci. V tomto případě bude akce provedena v rámci dir_A adresář.

$rsync-vv --no-celý souborfigurína*dir_B/

Přestože je povolen přenos delta, rsync jej nemusí použít, když provádíte místní přenos dat.

Nyní se podívejme na funkci suchého chodu. Před skutečným spuštěním jakéhokoli příkazu rsync je vždy důležité, abyste si jej předem vyzkoušeli. Zde přichází suchý běh. Rsync zobrazí, co se stane, pokud by měl příkaz skutečně spustit.

$rsync-anvrdir_A/dir_A_copy

Rsync může také pracovat se vzdálenými adresáři, žádný problém. Vše, co potřebuje, je správné připojení SSH s nakonfigurovanými klíči SSH.

$ rsync<volba> <local_dir>
<uživatelské jméno> @<vzdálený_hostitel>:<cílový_adresář>

Chcete provést operaci přesunu? Abychom to uvedli z pohledu rsync, rsync zkopíruje obsah zdrojového adresáře a poté zdrojový obsah smaže.

$rsync-proti -odstranit-source-soubory <zdroj> <destinace>

Podívejte se na výsledek operace.

$stromdir_A

$stromdir_A_copy

Závěrečné myšlenky

Cp a rsync jsou nejběžnější nástroje, které můžete použít ke kopírování souborů ve složce na terminálu Linux. Oba jsou také opravdu dobří pro skriptování. Před implementací nezapomeňte vyzkoušet funkce.

Užívat si!