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#124: V čem opravovat obrázky a fotky a nekrást kvůli tomu Photoshop?
Znáte to, prostě potřebujete nějaké ty programy, které umí pracovat s obrázky. Ideálně samozřejmě Photoshop, protože ten má (a) přece každý a (b) Franta tady od vedle ho umí ukrást. Co na…
-
TIP#109: Software pro Linux, bez kterého se neobejdete. Tedy, určitě, teoreticky.
Pořídili jste si Linux, třeba nějaké to Ubuntu, které je poměrně dost uživatelsky přívětivé i snadno instalovatelné. Jenže na vás kouká prázdná plocha, nevíte co si pořídit, aby to začalo trochu líp…
-
TIP#108: Když testovat programy, tak ve Virtuálním stroji. Vážně! Ale užitečné to je na víc věcí
Pokud máte Windows, tak si za normálních okolností věcí z Linuxu nespustíte. Pokud máte MAC, tak si zase za normálních okolností nespustíte věci z Windows. Stejně tak je to na Linuxu, nemůžete…
-
TIP#104: Jaký HTML WYSIWYG editor vybrat pro psaní textů pro web?
Tohle je takový věčně vracející se problém: V čem psát HTML dokumenty, pokud je tedy hlavně nechcete psát přímo v „zobáčcích“, tedy přímo v HTML kódu. Protože ono nějak těch skutečných WYSIWYG…
-
TIP#054: Jak vytvořit bootovatelný USB disk ve Windows (ale i Linuxu)
Dnes trochu odbočíme, ale jsme si jist, že přesně tohle se vám může jednoho dne docela dost hodit. Vytvoření bootovatelného USB disku je totiž něco, co je užitečné nejenom když máte nějaký…







