GNU/Linux >> Znalost Linux >  >> Linux

cp Command v Linuxu:7 praktických příkladů

Jedním z příkazů, které musíte v Linuxu znát, je cp. V Linuxu se mu často říká copy command a ve skutečnosti je to zkratka pro copy a dělá přesně tak, jak název napovídá:kopíruje.

cp se používá pro kopírování souborů z jednoho umístění do druhého. cp lze také použít ke zkopírování celých adresářů do nového umístění. Můžete jej použít také ke kopírování více souborů a adresářů.

7 příkladů použití příkazu cp v Linuxu

Podívejme se, jak můžete použít příkaz cp pro různé účely:

1. Jak zkopírovat soubor

Nejjednodušším příkladem by bylo zkopírovat soubor. Chcete-li to provést, stačí zadat zdrojový soubor a cílový adresář nebo soubor.

cp source_file target_directory/target_file

Pokud ve výše uvedeném příkladu cílový_file v cílovém_adresáři neexistuje, vytvoří se cílový_soubor.

Pokud však nový_soubor již existuje, přepíše jej bez dotazu. Což znamená, že obsah stávajícího cílového souboru se změní s obsahem zdrojového souboru.

Později v tomto tutoriálu vám ukážu, jak se vypořádat s přepisováním souborů.

Mějte na paměti :Ve výchozím nastavení se příkazy cp přepisují, pokud cílový soubor již existuje. Toto chování lze změnit pomocí volby -n nebo -i, vysvětleno později.

2. Jak zkopírovat více souborů

Pokud chcete zkopírovat více souborů najednou do nového umístění, můžete to udělat následujícím způsobem:

cp file1 file2 file3 fileN target_directory

Tím se zkopírují všechny zadané soubory do cílového adresáře. Pokud má cílový adresář soubor(y) odpovídající názvu zdrojového souboru(ů), bude přepsán.

3. Několik způsobů řešení přepisování při kopírování souborů

Pravděpodobně nebudete vždy chtít, aby byly vaše stávající cílové soubory přepsány, a to je zcela logické.

Chcete-li zabránit přepsání existujících souborů, můžete použít volbu -n. Tímto způsobem cp nepřepíše existující soubory.

cp -n source_file target_directory

Ale možná budete chtít přepsat některé soubory. Můžete použít interaktivní volbu -i a zeptá se vás, zda chcete přepsat existující soubor(y).

cp -i source_file target_directory
cp: overwrite 'target_directory/source_file'?

Můžete zadat y pro přepsání existujícího souboru nebo n pro nepřepsání.

K dispozici je také možnost automatického zálohování. Pokud použijete volbu -b s příkazem cp, přepíše se existující soubory, ale předtím se vytvoří záloha přepsaných souborů.

cp -b file.txt target_dir/file.txt
ls target_dir
file.txt file.txt~

Záloha souboru končí ~.

Můžete také použít možnost aktualizace -u při řešení přepisu. S volbou -u budou zdrojové soubory zkopírovány do nového umístění pouze v případě, že je zdrojový soubor novější než stávající soubor nebo pokud v cílovém adresáři neexistuje.

Abych to shrnul:

  • -i :Před přepsáním potvrdit
  • -n :Žádné přepisování
  • -b :Přepsání zálohou
  • -u :Přepíše, pokud je cílový soubor starý nebo neexistuje

4. Jak zkopírovat adresář v Linux

Můžete také použít příkaz cp ke zkopírování adresáře v Linuxu včetně všech jeho souborů a podadresářů. Zde musíte použít volbu -r, která znamená rekurzivní.

cp -r source_dir target_dir

Tím se zkopíruje celý zdrojový_adresář do cílového_adresáře. Nyní bude zdrojový_adresář podadresářem cílového_adresáře.

ls target_dir
source_dir

5. Jak zkopírovat pouze obsah adresáře, nikoli adresář samotný

V předchozím příkladu jste zkopírovali celý adresář do nového umístění.

Ale pokud chcete pouze zkopírovat obsah zdrojového adresáře do cílového adresáře, měli byste přidat /. na konci zdrojového adresáře. To bude znamenat, že chcete zkopírovat pouze obsah zdrojového adresáře.

Podívejme se na příklad:

ls source_dir
source_file_1 source_file2

Nyní zkopírujte obsah zdrojového adresáře:

cp -r source_dir/. target_dir

Pokud nyní zkontrolujete obsah cílového adresáře, uvidíte, že byl zkopírován pouze obsah zdrojového adresáře.

ls target_dir
source_file_1 source_file2

6. Jak zkopírovat více adresářů

V Linuxu můžete také kopírovat více adresářů najednou pomocí příkazu cp.

Stačí jej použít stejným způsobem jako pro jeden adresář.

cp -r source_dir1 source_dir2 source_dir3 target_dir

Je to vždy poslední argument v příkazu, který je považován za cílový adresář.

Pokud chcete kopírovat pouze obsah více adresářů najednou, můžete to udělat také:

cp -r source_dir1/. source_dir2/. source_dir3/. target_dir

Ve skutečnosti můžete kombinovat adresáře, jejich obsah a soubory dohromady.

cp -r source_dir1 source_dir2/. source_file target_dir
Tip :Můžete použít podrobný režim s volbou -v, abyste viděli, jaké soubory se kopírují.

7. Jak zachovat atributy při kopírování

Když zkopírujete soubor do nového umístění, změní se jeho atributy, jako jsou oprávnění k souboru a časová razítka souboru.

Pokud chcete zachovat atributy původního souboru, můžete soubory zkopírovat pomocí volby -p.

Podívejme se na to na příkladu.

ls -l /etc/services 

-rw-r--r-- 1 root root 19183 Dec 26  2016 /etc/services

Pokud se pokusím zkopírovat tento soubor normálně, jeho atributy se změní:

cp /etc/services .
ls -l services 
-rwxrwxrwx 1 abhishek abhishek 19183 Nov 25 20:45 service

Ale pokud použiji možnost p, zkopírovaný soubor si zachová režim, vlastnictví a časové razítko.

cp -p /etc/services .
ls -l services 
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26 2016 services

Jak můžete vidět, zachovali jste režim přístupu a časové razítko zdrojového souboru pomocí volby -p.

Ale počkej! Nemělo to zachovat i vlastnictví zdrojových souborů? Zde byl ale vlastník (kořen) zdrojového souboru změněn na abhishek.

Je to proto, že pouze root má oprávnění změnit vlastnictví souboru vlastněného rootem. Pokud použijete volbu -p se souborem, který nevlastní root, zachová vlastnictví. Nebo můžete spustit příkaz pomocí sudo, abyste zachovali vlastnictví souboru vlastněného uživatelem root.

Můžete také zadat atributy, které chcete zachovat. Pak ale budete muset použít možnost –preserve.

cp --preserve=timestamp /etc/services .
ls -l services 
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26  2016 services

Jak můžete vidět na výše uvedeném výstupu, zachoval pouze časové razítko zdrojového souboru.

Příkaz cp můžete dále prozkoumat procházením jeho manuálové stránky. Zde uvedené příklady jsou ty nejběžnější, které budete používat jako uživatel Linuxu, správce systému nebo vývojář softwaru.

Pokud se vám tento návod líbil, sdílejte prosím tento článek na sociálních sítích a různých fórech.


Linux
  1. Linux Shutdown Command:5 praktických příkladů

  2. Příklady příkazů rm v Linuxu

  3. Příklady příkazů ps v Linuxu

  1. 5 Praktické příklady příkazu dd v Linuxu

  2. Linuxový příkaz cp

  3. 10 Praktické příklady příkazů Linux nm

  1. 7 Příklady příkazů Linux df

  2. 8 Příklady příkazů Linux TR

  3. sa Příklady příkazů v Linuxu