Tento příspěvek je o příkazu Linux cp.
Kopírování souborů je jedním z nejběžnějších úkolů při manipulaci se soubory v jakémkoli operačním systému. Je dokonce velmi běžné používat na ploše zkratku CTRL + c pro kopírování a CTRL + v pro vkládání. V linuxovém terminálu je to však také poměrně jednoduchý úkol a k tomu používáme příkaz cp.
Příkaz cp pro Linux
Příkaz cp pouze zkopíruje jeden nebo více souborů nebo složek z jednoho umístění do druhého. Nicméně, jako každý příkaz Linuxu, jeho počáteční chování lze upravit díky použití voleb.
Podobně je příkaz cp nainstalován a připraven ve všech distribucích Linuxu, protože je součástí GNU utils. Stačí tedy otevřít emulátor terminálu a začít pracovat.
Příkaz Cp:základní syntaxe a možnosti
Použití příkazu cp je poměrně jednoduché, protože jeho funkce je také jednoduchá. Stejně jako všechny příkazy v rodině UNIX má základní syntaxi pro použití.
V případě příkazu cp je základní syntaxe následující:
cp [option]... source... directory
Kde zdroj odkazuje na soubor nebo složku, která bude zkopírována do cíle zvaného adresář.
Možnosti a některé základní informace o příkazu lze zobrazit pomocí následujícího příkazu:
:~$ cp --help
Tam uvidíte, že existuje několik různých možností. Nejdůležitější jsou následující:
Možnost | Popis podle GNU utils |
-a | Zachovejte co nejvíce struktury a atributů původních souborů v kopii |
-d | Symbolické odkazy zkopírujte jako symbolické odkazy a nekopírujte soubory, na které odkazují, a zachovejte pevné odkazy mezi zdrojovými soubory v kopiích. |
-f nebo –force | Tato možnost vynutí kopírování, i když cílová složka není k dispozici pro zápis. |
-i nebo –interactive | Zobrazí zprávu pokaždé, když má být soubor přepsán. |
-l | Vytvářejte pevné odkazy namísto kopií neadresářů. |
-R nebo -r nebo –rekurzivní | Kopírujte adresáře rekurzivně. Ve výchozím nastavení nenásledujte symbolické odkazy ve zdroji. |
-s nebo –symbolic-link | V tomto případě příkaz vytvoří symbolické odkazy na všechny soubory, které nejsou složkami. Toto nahrazuje kopii. |
-u nebo –update | Tato možnost nekopíruje soubory, které mají v cílové složce stejné nebo novější časové razítko. Jedná se o aktualizaci kopie. |
-v nebo –verbose | Před zkopírováním si vytiskněte název každého souboru. |
Nyní na několika příkladech předvedeme běžné použití příkazu cp v systému Linux.
Pomocí příkazu cp
Zkopírujte jeden nebo více souborů do složky
Začněme základy. Chcete-li zkopírovat soubor do určité složky, spustitelný příkaz je následující:
:~$ cp [file] [destination]
Například:
:~$ cp file.txt /home/user/Documents/
Výše uvedený příkaz zkopíruje soubor s názvem file.txt umístěný na stejném místě jako výzva ve složce Dokumenty.
Můžete také zkopírovat soubor, který je na jiném místě než výzva, pomocí absolutní cesty.
:~$ cp /home/user/Pictures/image.jpg /home/user/Documents
Pokud tedy chcete kopírovat několik souborů najednou, oddělte je mezerou.
:~$ cp file1.txt file2.txt /home/user/Downloads
Stále to můžete udělat s absolutními trasami.
:~$ cp /home/user/file1.txt /home/user/Pictures/file2.jpg /home/user/Downloads
Tak rychle můžete zkopírovat několik souborů.
Zkopírujte všechny soubory v adresáři do složky
Je také možné zkopírovat všechny soubory z jedné složky do druhé. Chcete-li to provést, použijte operátor hvězdička (*). Například:
:~$ cp * [destination]
Nebo
:~$ cp * /home/users/Documents/folder/
Ale pokud chcete zkopírovat všechny soubory, které mají stejnou příponu, můžete to udělat následujícím způsobem:
:~$ cp *.txt /home/users/Documents/folder/
To znamená, že všechny soubory .txt se zkopírují do složky.
Kopírování adresářů pomocí příkazu cp
Doposud jsme vás naučili kopírovat soubory, ale co kdybyste chtěli zkopírovat složku? No, způsobí to chybu.
Předpokládejme, že chcete zkopírovat složku s názvem „example“ do /home/angelo/Documents, což by způsobilo chybu cp s vynecháním adresáře
podobnou této:
Chcete-li zkopírovat složky pomocí příkazu cp, přidejte volbu -r. Například:
:~$ cp -r example/ /home/angelo/Documents/
Tím se zkopíruje celá složka do cílové složky.
Zálohujte soubory ke kopírování
Toto je velmi užitečná možnost. Při kopírování souborů je běžné, že je budete časem upravovat, ale vždy si můžete ponechat kopii originálu.
K vytvoření zálohy stačí použít následující příkaz:
:~$ cp -ab [file] [destination]
Samozřejmě můžete zadat požadovaný soubor a složku. Například:
:~$ cp -ab file2.txt /home/angelo/Documents/example/
V tomto případě používáme dvě možnosti současně. První je -a. explicitně zachází se souborem jako s tím, čím je, se souborem. A druhý, který je -b, je provést zálohu.
Příkaz udělá zálohu a přidá ~ na konec, pokud uděláme kopii podruhé. Toto bude původní soubor kopie.
:~$ ll /home/angelo/Documents/example
Před přepsáním souboru si vyžádejte potvrzení
Chcete-li se vyhnout možným chybám při zápisu do souboru, můžete použít volbu -i.
Při použití této možnosti budete požádáni o potvrzení před přepsáním souborů pro kopii. Chcete-li to provést, přidejte do příkazu volbu -i:
:~$ cp -i file2.txt /home/angelo/Documents/example/
Pamatujte, že varování se objeví pouze při přepisování. Pokud zkopírujete mnoho souborů, ale žádný se v cílovém umístění nenazve stejně jako jiný, nezobrazí se nic.
Vyhněte se přepisování souborů pomocí příkazu cp
Příkaz cp má možnost, která zabrání přepsání souborů v cílové složce během kopírování.
Chcete-li to provést, jednoduše přidejte volbu -n do příkazu cp:
:~$ cp -n file.txt [destination]
Tato možnost je užitečná, pokud již víte, že existují soubory, které jsou pojmenovány stejným způsobem, a chcete se vyhnout jejich přepsání. Na druhou stranu je to také užitečné, pokud nemáte ponětí, zda podobné soubory existují.
Vytvářejte kopie při zachování atributů souboru
V systémech založených na Unixu mají soubory specifické atributy. Pokud jej tedy zkopíruje nebo přesune jiný uživatel než ten, kdo jej vytvořil, existuje riziko úpravy hodnot těchto atributů. Některé z nich jsou datum úpravy a oprávnění k souboru.
Chcete-li se tomu vyhnout, přidejte do příkazu cp volbu -p.
:~$ cp -p [file] [destination]
Takto jednoduché je zachovat atributy během kopírování.
Aktualizace zálohy pomocí příkazu cp
Je možné použít příkaz cp k zálohování našich souborů na jiné místo, jako je externí paměť. Předpokládejme, že chcete zálohovat složku s hudbou do jiného umístění. Chcete-li to provést, použijte následující příkaz:
:~$ cp -r [music_folder] [destination]
Jak se však ukázalo, do této složky přidáváte nové soubory a chcete je znovu zálohovat. Můžete zabránit příkazu cp zkopírovat zpět soubory, které jste již zálohovali, a pouze zkopírovat ty, které nejsou v cílové složce.
Zní to dobře, že? K tomu používáme volbu -u nebo -update.
:~$ cp -ru [music_folder] [destination]
Zkrátka příkaz zkopíruje složku, ověří, které soubory ze zdrojové složky jsou v cílovém umístění. A nakonec zkopíruje pouze ty, které nejsou.
Chcete-li vidět celý proces, můžete také přidat volbu -v.
:~$ cp -ruv [music_folder] [destination]
Zálohu tedy můžete aktualizovat jednoduchým příkazem.
Poslední myšlenky
Příkaz cp je snadno použitelný příkaz, ale viděli jste, že s ním můžete dělat mnoho zajímavých věcí. Je součástí GNU utils, díky čemuž je dostupný pro všechny distribuce Linuxu.
Na druhou stranu, v tomto příspěvku jste se dozvěděli část toho, co lze s příkazem dělat. To je velmi užitečné v serverových prostředích, ale také k pronikání hlouběji a hlouběji do provozu operačního systému.