cp je základní příkaz v Linuxu pro kopírování souborů, stejně jako copy ve Windows. Ostatně je zkratka právě z oné delší verze.
Funguje klasicky, tedy napíšete cp odkud kam a systém vytvoří kopii. V odkud je možné uvádět jméns souborů ale používat i zástupné znaky (* a ?) pro výběr více souborů. Pozor na to, že skryté soubory (ty co začínají tečkou) to bude ignorovat.
Vtip s tečkovanými soubory je, že
- cp -a zdroj/* cil/ # nekopíruje je
- cp -a zdroj/. cil/ # je kopíruje
- cp cp -a zdroj cil/ # je kopíruje
Základní příklady použití
Základní kopie jednoho souboru
cp foto.jpg /mnt/usb/
Více souborů do adresáře (ano, jako zdroj jde uvádět víc věcí, cíl je pak ten poslední)
cp *.png *.jpg /mnt/usb/obrazky/
Kopie včetně skrytých souborů (nepoužívat hvězdičku)
cp -a projekt/. /mnt/backup/projekt/

TIP: Chcete návod? V Linuxu prostě zkustei man cp. Na webu třeba v cp(1) — Linux manual page
Kopírování složek
Umí kopírovat i složky (tedy jejich obsah), ale tam musíte použít -r jako parametr. Tedy něco jako cp -r vychozislozka/ cilovaslozka/
MImochodem, místo -r se doporučuje používat -R.
Hodit se alespíše může -a (-dR –preserve=all) což je kombinace rekurze (tedy obsahu složek) a zachování práv, vlastníka, časů, symlinků, ACL, xattr atd
Rekurzivní kopie adresáře (doporučeně -a)
cp -a projekt/ /mnt/backup/
Aby toho nebylo málo, tak je tu ještě –parents, které v cíli vytvoří i cestu. Tedy tu původní cestu ke zdroji, pro názornost:
cp –parents a/b/c.txt /backup/ → /backup/a/b/c.txt (tedy v /backup vytvoří ony složky)
Zachovat cestu (parents)
cp –parents src/app/config.yaml /backup/
“Synchronizace” pouze nových/novějších souborů
cp se v základní podobě dá použít pro zálohování/synchronizaci, ale tam je vhodné využít -u. Zajistí, že se budou kopírovat pouze novější soubory+ty co v cíli chybí a ne tedy vše co ve výchozí složce máte. Pochopitelně tedy v kombinaci jako -ru
Kopie pouze novějších souborů (rychlé „přisypání“)
cp -a -u zdroj/ cil/
TIP: pokud chcete opravdu synchronizovat, naučte se používat rsync
Ochrana proti blbosti
cp prostě spustíte a ono kopíruje a klidně přepíše cokoliv, co v cílovém místě je a nebude se na nic ptát. Pokud chcete aby se ptalo, použijte -i (interaktivně).
Užitečné je -n (no-clobber) které zajistí, že pokud v cíli už soubor existuje, nepřepíše ho. Opak je -f (force) s vynuceným přepsáním.
Bezpečně – nepřepisuj existující
cp -a -n zdroj/ cil/
Šikovné je -b (–backup) kde případné přepsání vytvoří zároveň zálohu. Původní jméno souboru doplněné o příponu (tu lze určit pomocí –suffix)
Při přepisu dělej zálohu s příponou .bak
cp -a –backup –suffix=.bak zdroj.cfg /etc/zdroj.cfg
Podrobně vidět co se děje
Podobně užitečné je -v (verbose) kde probíhající cp bude vypisovat co kopíruje (odkud kam).
Včetně atributů
Pokud chcete aby v cílovém podobě byly zachovány atributy (vlastnosti), tak použijte -p. Bez přidání budou mít kopie nový timestamp, vlastníka i mode podle toho kam kopírujete. S -p timestamp zůstane. Pro zachování vlastnictví bude třeba spouštět přes sudo (či jiný odpovídající spůsob)
Symlinky
Také dost důležité:
- -d (kopíruj symlinky jako symlinky)
- -L (následuj symlinky)
- -P (nenásleduj).
Jde i nevytvářet kopie, ale vytvořit symlinky s pomocí -l (hardlinky), -s (symlinky). Což vám ale neudělá duplikát (kopii) ale jen “odkaz” na originál.
Další tipy týkající se Linuxu (a podobných věcí)
-
TIP#3082: Končí (podpora) Windows 10. Co to znamená? Co dělat, když mám Windows 10
14. října skončily WIndows 10. Nebudou k dispozici opravy ani nové funkce, přestane být dostupná i technická podpora. Pro jednotlivce to ještě chvíli tak velký problém nebude, ale pro firmy to problém…
-
TIP#3019: Jak z YouTube v terminalu (Mac, Linux, atd) stáhnout video z youtube? A získat zvukovou stopu?
Nejlepší na věcech jako je příkazová řádka (terminál) v Linuxu či Mac OS (ale máte to i ve Windows i jinde) je, že tam hodně věci jde udělat mnohem snáz, než v…
-
TIP#2989: Jak na (nejen) Raspberry Pi (rychle) vidět chyby/problémy, ke kterým v systému došlo?
Občas je užitečné vědět jak se snadno/rychle podívat, jestli někde v hloubí vaše Rasberry nedošlo či nedochází k nějakým chybám. Nejčastěji když něco zlobí, ale vyplatí se to čas od času kontrolovat…
-
TIP#2970: Jak v terminálu v Linuxu otevřít či si prohlédnout soubor?
V okamžiku kdy se ocitnete v terminálu v LInux, tedy nikoliv v grafickém rozhraní, tak narazíte na něco co právě v GUI bývá snadné, jenže tady nic takového není. Jak se podívat…
-
TIP#2961: Jak změnit mapování portů (či IP adresu) na které běží kontejner v Dockeru?
Taková nepraktická věc, kterou vlastně moc nechápu proč nejde udělat jednoduše. Máte kontejner, spuštěný třeba na portu 5566 a chcete (potřebujete) ho dát na jiný port. Nebo běží na nějaké vnější IP…
-
TIP#2950: Ve Windows je NET VIEW. Je něco podobného v Linuxu? Jak zjistit jaké servery v síti mají jaké síťové disky?
NET VIEW ve Windows slouží k zkoumání toho, co za sdílené disky/prostředky je dostupné na serveru či počítači (a případně i v celém sítí či doméně). Související příspěvky TIP#2765: Raspberry Pi a…
-
TIP#2944: Jak v Linuxu zjistit kde se nachází (a odkud se spustí) konkrétní příkaz? Použijte which
Tohle je dost užitečná vychytávka v Linuxu/unixu, pokud hledáte kde se nachází nějaký příkaz a odkud se spouští, tak můžete použít which doplněný o jméno hledaného (případně i více jmen). Související příspěvky…
-
TIP#2940: Docker na Raspberry Pi. Je to snadné
Když už jsem konečně jedno z mých RPi5 osvobodil od SD karty a startuje z 256 GB SSD, tak je to dobrá příležitost si tam dát Docker a rozjet nějaké věci. Možná…
-
TIP#2933: Jak RaspBerry Pi spouštět z USB externího disku?
Tohle je vlastně snadné. Nové RaspBerry už umí bootovat z SD karty, USB disku či SSD připojeného přímo na RPi bez komplikaci s nastavením. Nastavit se to dá přímo v raspi-config (Advanced…
-
TIP#2858: Přechod z Windows na Mac: Doporučené aplikace pro snadnou změnu
Máte zprovozněný Mac (Mini) tak, že je připojený k Internetu, displeji a myš a klávesnice ho umožňují ovládat. Takže můžete pokračovat instalacemi aplikací, aby to také k něčemu bylo. Budu to brát…
-
TIP#2842: Espanso coby náhrada AutoHotKey (AHK) a proč je to nejlepší text-expander pro Mac, Windows i Linux
Čistá instalace MacBooku pomohla zbavit se kupy aplikací, které jsem tam měl a nepoužíval. A také najít případně jiné lepší, než používané doposud. Velmi dobrý příklad je Espanso, open source pro automatické…
-
TIP#2828: Jak na Pi-hole pro domácí i firemní blokování reklamy a lepší bezpečnost (A jak ji mít na QNAP NAS)
Pi-hole je DNS server, který umí blokovat reklamu a také některé nebezpečné věci. Dělá to tak, že si v domácí/firemní sítě nastavíte jeho použití na počítačích i mobilních zařízeních a pokud kdokoliv/cokoliv…
-
TIP#2824: NoMachine znáte? Pro vzdálený přístup na plochu skvělá možnost
Vzdálený přístup má mnoho různorodých podob – terminálový (příkazová řádka) i graficky, tedy na plochu na vzdáleném počítači, který to umožňuje. Je to trochu roztříštěná džungle a je s tím spojena řada…
-
TIP#2805: Historie schránky? K čemu se to hodí a jak na to ve Windows, Mac OS, iPhone/iPadu, Androidu, Linuxu, Chrome OS
Musím se přiznat, že mi docela dlouho trvalo, než jsem naučil hlavu používat historii schránky. Tedy ve Windows vědět, že stačí zmáčknout Win+V a objeví se několik desítek posledních obsahů co jsem…
-
TIP#2791: Užitečné software (aplikace) pro Raspberry Pi (a Linux vůbec)?
A je tu zase tolik oblíbený tip s různorodým užitečným software (aplikacemi, jak se tomu teď také říká). Tentokrát pro Raspberry Pi. Je to nový souhrn, vycházející z aktuálních pokusů s Raspberry…

















