GNU/Linux >> Znalost Linux >  >> Linux

Jak používat příkaz cp ke kopírování souborů a adresářů

Kopírování souborů nebo adresářů je jednou ze základních činností každého operačního systému. Zálohovací činnost je v podstatě vytváření kopií souborů a adresářů. V systému Linux k tomu můžeme použít příkaz cp.

Jak jsme uvedli výše, příkaz cp je příkaz k vytvoření kopie souborů a adresářů. Zde je několik příkladů příkazu cp, který může být užitečný při každodenním provozu

1) příkaz cp

Toto je velmi základní použití cp. Chcete-li zkopírovat název souboru myfile.txt z jednoho umístění do jiného, ​​můžeme napsat takto:

$ cp myfile.txt /home/pungki/office

Pokud nezadáme absolutní cestu, znamená to, že kopírujeme soubor do aktuálního adresáře. Z výše uvedeného příkladu myfile.txt se nachází v /home/pungki/Documents . Nemusíme psát /home/pungki/Documents/myfile.txt zkopírujte soubor myfile.txt pokud jsme v tom /home/pungki/Documents adresář. Zatímco /home/pungki/office je složka, do které bude soubor zkopírován.

2) Kopírování více souborů současně

Chcete-li zkopírovat více souborů současně, stačí umístit soubory za příkaz copy, který je oddělen mezerou. Zde je příklad:

$ cp file_1.txt file_2.txt file_3.txt /home/pungki/office

3) Zkopírujte adresář

Kopírování adresáře je trochu složitější. Musíte přidat -r nebo -R možnost to udělat. Volba -r nebo -R znamená rekurzivní. Tato možnost je nutností zda je adresář prázdný nebo ne. Zde je příklad:

$ cp -r directory_1 /home/pungki/office

Ještě jedna věc, kterou je třeba poznamenat, je, že musíte odstranit koncové lomítko za názvem adresáře. V opačném případě se zobrazí chybová zpráva jako cp :vynechání adresáře ‚adresář_1/‘

Pokud se zobrazí tato chyba, adresář se nezkopíruje do cílové složky.

4) Vytvářejte pevné odkazy na soubory namísto jejich kopírování

Kopírování souboru znamená, že pro uložení zkopírovaných souborů musíte mít v úložišti nějaké místo. Někdy z jakýchkoli důvodů můžete chtít vytvořit „zástupce“ nebo odkazy na soubory namísto jejich kopírování. K tomu můžeme použít -l možnost.

$ cp -l file_4.txt /home/pungki/office

Z výše uvedeného snímku obrazovky vidíme, že pevný odkaz file_4.txt byl zkopírován do /home/pungki/office/file_4.txt . Je označeno stejným inodem, 835386 . Upozorňujeme však, že pevné odkazy nelze vytvářet do adresářů. Podívejme se na příklad níže.

Původní adresář_1 má číslo inodu 278230

Původní soubor_5.txt má číslo inodu 279231

Proveďte příkaz cp v adresáři_1

Zkopírovaný adresář_1 má číslo inodu 274800

Zkopírovaný soubor_5.txt měl číslo inodu 279231. Stejné jako jeho původní soubor

5) Vytvořte symbolické odkazy na soubory

Existuje další typ odkazů nazývaných softlinks nebo symbolické odkazy . Používáme -s možnost to udělat. Zde je ukázkový příkaz.

$ cp -s /home/pungki/Documents/file_6.txt file_6.txt

Vytváření symbolických odkazů lze provést pouze v aktuálním adresáři. Na snímku výše chceme vytvořit symbolické odkazy ze zdrojového adresáře - /home/pungki/Documents/file_6.txt na /home/pungki/office . Ale abych vytvořil symbolické odkazy, musím dovnitř /home/pungki/office jako cílovou složku. Jakmile se mi tam podaří být, mohu spustit cp -s příkaz výše.

Když pak vypíšete soubor s podrobnostmi, uvidíte, že /home/pungki/office/file_6.txt ukazuje na původní soubor. Je označena šipkou za názvem souboru.

6) Kopírujte bez následujících symbolických odkazů ve zdroji

K tomu můžeme použít -P volba. Když příkaz cp nalezne soubor se symbolickými odkazy, zkopíruje soubor tak, jak je. Podívejte se na ukázku níže.

$ cp -P file_6.txt ./movie

Jak vidíte, příkaz cp zkopíruje file_6.txt jak je. Typ souboru je stále symbolický odkaz.

7) Zkopírujte pomocí následujících symbolických odkazů ve Zdroji

Nyní to můžeme udělat pomocí -L volba. V zásadě jedná se o opak z -P možnost výše. Zde je ukázka.

$ cp -L file_6.txt ./movie

Při použití této možnosti je zkopírovaný soubor stejný jako zdrojový soubor file_6.txt . To je znát z velikosti souboru. Zkopírovaný soubor má 50 bajtů velikost souboru, zatímco soubor_6.txt jako symbolický odkaz má 33 bajtů velikost souboru.

8) Archivujte soubory

Když budeme kopírovat adresář, použijeme -r nebo -R volba. Můžeme ale použít i -a možnost archivace souboru. Tím vytvoříte přesnou kopii souborů a adresářů včetně případných symbolických odkazů. Zde je ukázka:

$ cp -a directory_1/ /home/pungki/office

Výše uvedený příkaz zkopíruje adresář s názvem directory_1 do složky /home/pungki/office . Jak můžete vidět, file_6.txt stále zkopírovány jako symbolické odkazy.

9) Vysvětlete, co se dělá

Ve výchozím nastavení, když je kopírování úspěšné, znovu se zobrazí příkazový řádek. Pokud chcete vědět, co se stane během kopírování souboru, můžeme použít -v možnost.

$ cp -v *.txt /home/pungki/office

Když zkopírujeme všechny soubory txt v aktuálním adresáři do /home/pungki/office/ adresář, -v volba ukáže, co se dělá. Tyto dodatečné informace nám zajistí větší jistotu ohledně kopírování.

10) Kopírujte pouze v případě, že je zdrojový soubor novější

K tomu můžeme použít -u volba. Podívejte se na tento příklad níže.

$ cp -vu *.txt /home/pungki/office

Na začátku vidíme, že soubor_1.txt má 0 bajtů velikost souboru. Poté jej upravíme pomocí vi, přidáme nějaký obsah a uložíme. Dále vidíme, že velikost souboru se změnila na 36 bajtů.

Mezitím v /home/pungki/office adresář, již máme všechny *.txt soubory. Když použijeme -u možnost v kombinaci s -v možnost vidět, co se dělá, příkaz cp zkopíruje pouze soubor(y), který je novější z cílového adresáře. Výsledkem je, že do adresáře /home/pungki/office se zkopíruje pouze soubor_1.txt .

11) Použijte interaktivní režim

Interaktivní režim se zeptá, zda cílová složka již soubor obsahuje. Pro aktivaci interaktivního režimu použijte -i možnost.

$ cp -ir directory_1/ /home/pungki/office/

12) Vytvořte datum zálohy každého zkopírovaného souboru

Když cílová složka již soubor obsahuje, příkaz cp ve výchozím nastavení přepíše stejný soubor v cílovém adresáři. Pomocí --backup příkaz cp provede zálohu každého existujícího cílového souboru. ../office bude odkazovat na /home/pungki/office . Zde je ukázka:

$ cp --backup=simple -v *.txt ../office

Jak vidíme, --backup=simple vytvoří záložní soubor, který je označený vlnovkou (~) na konci souboru. -záloha volba má nějaké ovládací prvky, kterými jsou:

  • žádné, vypnuto: nikdy nezálohuje (i když je zadáno --backup)
  • číslované, t : proveďte očíslované zálohy
  • existující, nula: očíslované, pokud existuje číslovaná záloha, jinak jednoduché
  • jednoduché, nikdy : vždy provádějte jednoduché zálohy

13) Kopírovat pouze atributy souboru

Příkaz Cp nám také poskytuje ---attributes-only volba. Jak můžeme odhadnout z jeho názvu, tato volba zkopíruje pouze název souboru a jeho atributy bez kopírování jakýchkoli dat. Zde je ukázka.

$ cp --attributes-only file_6.txt -v ../office

Ze snímku obrazovky výše původní soubor file_6.txt má 50 bajtů velikost souboru. Pomocí --attributes-only možnost, zkopírovaný soubor bude mít 0 bajtů velikost souboru. Je to proto, že se obsah souboru nekopíruje.

14) Vynutit kopírování

Pomocí -f volba vynutí činnost kopírování. Pokud cílové soubory nelze otevřít, stiskněte -f zkusí to znovu.

$ cp -f *.txt -v ../office

15) Před kopírováním odstraňte cíl

K tomu můžeme použít --remove-destination volba. Tato volba je v kontrastu s volbou -f výše. Pokud příkaz cp najde stejný název souboru v cílové složce, příkaz cp nejprve odstraní cílový soubor a zkopíruje nový. Zde je příklad.

$ cp --remove-destination *.txt -v ../office

Příkaz Cp je jedním ze základních příkazů Linuxu. Pro ty, kteří se chtějí naučit Linux, musí znát tento příkaz. Samozřejmě můžete zadat man cp nebo cp --help z vaší konzole, aby se zobrazila její manuálová stránka, abyste mohli prozkoumat další podrobnosti.

Přečtěte si také:

  • Stručný přehled 106 linuxových příkazů s příklady

Linux
  1. Jak komprimovat soubory a adresáře v systému Linux (s příklady)

  2. Kopírování souborů a adresářů v Linuxu

  3. Jak používat příkaz Rsync v linuxu?

  1. Jak kopírovat soubory a adresáře v Linuxu

  2. Jak používat rsync k vyloučení souborů a adresářů v přenosu dat

  3. Jak kopírovat soubory v Linuxu a Unixu? 10 cp Příklady příkazů

  1. Jak odstranit adresáře a soubory pomocí Linuxu

  2. Najít příkaz v Linuxu (Najít soubory a adresáře)

  3. Jak odstranit soubory a adresáře pomocí příkazového řádku systému Linux