Pomocí příkazu „cp“ zkopírujte a vložte celé adresáře z jednoho místa na druhé
Bez ohledu na to, jaký operační systém používáte, kopírování jednoho souboru nebo složky z jednoho umístění do druhého je nejzákladnějším úkolem, který denně provádíte. V rušném dni v práci, během zadání projektu ve škole nebo během probíhajícího vývoje projektu je kopírování souborů z umístění A do umístění B nevyhnutelné.
Kopírování souborů nebo složek se obvykle provádí pomocí GUI. Linux se postará o váš zvyk pracovat na terminálu poskytnutím nástroje příkazového řádku, který vám umožní kopírovat soubory nebo složky z jednoho umístění do druhého. Za použití cp
příkaz s řadou možností vám dává svobodu kopírovat soubory a složky různými způsoby.
Dovolte mi, abych vás provedl tímto článkem, kde se dozvíte o cp
a způsoby kopírování adresářů spolu s jejich obsahem.
Dostupné možnosti s cp
příkaz
Toto jsou nejběžnější možnosti používané s cp
příkaz v kontextu kopírování adresáře a veškerého jeho obsahu.
Možnosti | Popis |
-proti | podrobný režim (ukazuje průběh) |
-r/R | rekurzivně kopírovat adresáře |
-n | nepřepisujte existující soubor nebo složku |
-i | výzva před přepsáním |
Zkopírujte adresář z jednoho umístění do druhého
Začněme nejzákladnějším použitím cp
příkaz. Tento příkaz použijeme s volbou -r
.
Za použití -r
volba zajišťuje, že podsložky a soubory v adresáři, který kopírujete, budou také zkopírovány.
Syntax:
cp -r [umístění zdroje] [cílové_umístění]
Příklad:
V mém aktuálním pracovním adresáři mám dva adresáře s názvem „projekt“ a „pracovní prostor“.
V tomto příkladu použiji cp -r
příkaz ke zkopírování adresáře „projekt“ spolu s veškerým jeho obsahem do nového umístění, tj. „/home/gaurav/workspace“. To jednoduše znamená, že kopíruji adresář s názvem „projekt“ do adresáře s názvem „pracovní prostor“.
Toto je obsah adresáře „projekt“. Za použití ls
příkaz k zobrazení jeho obsahu.
gaurav@ubuntu:~/project$ ls -al celkem 288 drwxr-xr-x 6 gaurav gaurav 4096 17. září 18:26 . drwxr-xr-x 88 gaurav gaurav 266240 17. září 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 17. září 18:25 dem1, drwxr-xr-x 2 drwxr-xr-x 2 drwxr-xr-x 2 drw8pr. -x 2 gaurav gaurav 4096 17. září 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17. září 18:25 dem4 -rw-r--r-- 1 gaurav temp gaurav 21. 8. září: 1. září ubuntu:~/projekt$
Nyní pomocí cp -r
můžeme zkopírovat adresář „projekt“ na libovolné požadované místo.
gaurav@ubuntu:~$ cp -r /home/gaurav/project /home/gaurav/workspace gaurav@ubuntu:~$
Výstup:
gaurav@ubuntu:~/workspace$ ls -al celkem 408 drwxrwxr-x 4 gaurav gaurav 4096 17. září 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 17. září 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 22. března 2018 .metadata drwxr-xr-x 6 gaurav 8-prav 7 gaurav 8-40 gaur -- 1 gaurav gaurav 1535 16. září 17:13 source.c gaurav@ubuntu:~/workspace$
Ve výše uvedeném výstupu můžeme vidět, že adresář ‚projekt‘ je zkopírován z původního umístění do tohoto nového umístění ‚/home/gaurav/workspace‘. Nyní otevřeme adresář „projekt“ a zkontrolujeme, zda je zkopírován také veškerý obsah v něm.
gaurav@ubuntu:~$ cd ./workspace/project gaurav@ubuntu:~/workspace/project$
Poznámka: použil jsem ./
zde místo zadání úplné cesty. Jednoduše to znamená, že je to cesta k mému domovskému adresáři a pracovní prostor se nachází v mém domovském nebo aktuálním pracovním adresáři. Chcete-li to objasnit, můžete se podívat na tento článek.
Výstup:
gaurav@ubuntu:~/workspace/project$ ls -al celkem 28 drwxr-xr-x 6 gaurav gaurav 4096 17. září 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 17. září 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 17. září 18:27 dem1, drwxr-xr-x 2 gaurav:2717 gaurav 2 gaurav:2096 dem2 2 gaurav gaurav 4096 17. září 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17. září 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24. září: 27. září 17: 17. září ~/pracovní prostor/projekt$
Z tohoto výstupu můžeme usoudit, že veškerý obsah adresáře ‚projekt‘ se také přesune do nového umístění.
Kopírování více adresářů z jednoho umístění do druhého
Chcete-li zkopírovat více adresářů, cp
příkaz lze použít stejným způsobem, jak je uvedeno výše. Jedinou změnou zde bude, že budete muset zadat více zdrojových cest více adresářů, které chcete zkopírovat.
Syntax:
cp -r [zdrojová_cesta_1] [zdrojová_cesta_n] [cílová_cesta]
Zkontrolujme tento příkaz na příkladu.
Příklad:
gaurav@ubuntu:~/workspace$ cp -r ./snap ./project /home/gaurav/tomcat
Zde jsem zkopíroval dva adresáře ‚snap‘ a ‚project‘ z mého aktuálního pracovního adresáře do nového umístění ‚/home/gaurav/tomcat‘.
Nyní zkontrolujeme, zda jsou adresáře zkopírovány s jejich obsahem do nového umístění.
gaurav@ubuntu:~/tomcat$ ls -al celkem 9316 drwxrwxr-x 5 gaurav gaurav 4096 19. září 12:16 . drwxr-xr-x 88 gaurav gaurav 266240 19. září 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 19. září 12:16 projekt drwxr-xr-x 7 gaurav 4119 Snap: gaurav: 4119 gauravp
Kontrola, zda je zkopírován i obsah těchto adresářů.
gaurav@ubuntu:~/tomcat/snap$ ls couchdb eclipse htop pycharm-community vim-editor gaurav@ubuntu:~/tomcat/snap$
gaurav@ubuntu:~/tomcat/project$ ls dem1, dem2 dem3 dem4 temp.c gaurav@ubuntu:~/tomcat/project$
Použitím cp
příkaz s podrobným režimem
Za použití cp
příkaz s možností -proti
umožňuje podrobný režim. Tato funkce zobrazuje soubory na terminálu, které se kopírují. Název souboru nebo složky, který se kopíruje, se zobrazí na vašem terminálu.
Syntax:
cp -vr [zdrojový_adresář] [cesta_cílové_umístění]
Příklad:
gaurav@ubuntu:~$ cp -vr ./workspace/apache ./space
V tomto příkladu je adresář „apache“ zkopírován do nové složky „space“. Použil jsem -proti
možnost s -r
, takže se zkopíruje i veškerý obsah adresáře Apache.
Výstup:
'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz' gaurav@ubuntu:~$
Výstup zobrazuje adresář, který se kopíruje. Stejný proces lze provést v případě kopírování více souborů.
Při používání se vyhněte přepsání cp
příkaz
Někdy při používání cp
Chcete-li zkopírovat více souborů nebo složek, můžete skončit přepsáním souborů, které jsou již zkopírovány do nového umístění. Aby se tomu zabránilo, je vhodné použít -i
možnost s cp
příkaz. To vás vyzve před přepsáním jakéhokoli souboru nebo složky.
Syntax:
cp -ri [cesta ke zdrojovému_adresáři] [cesta k cílovému_umístění]
Poznámka: Zde v syntaxi, kterou jsem použil -r
možnost také. Tím se také zkopíruje obsah adresářů. Také zkontroluje, zda nedochází k přepisování některé z těchto podsložek a souborů v adresáři.
Příklad:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: přepsat './tomcat/snap/pycharm-community/current'?
Zde jsem se pokusil zkopírovat adresář s názvem „snap“ do nového umístění. Ale název adresáře „snap“ již v novém umístění existuje. Terminál mě tedy vyzve před přepsáním existujícího adresáře snap.
Můžete napsat ‚Ano
"nebo"Ne
“ jako odpověď na tuto výzvu.
V případě, že nepoužíváte -i
existující adresář bude přepsán novým adresářem.
Přeskočit přepisování souborů a adresářů pomocí cp
příkaz
Můžeme použít -n
možnost přímo instruovat terminál, aby nikdy nepřepisoval a jednoduše přeskakoval podobné soubory a adresáře při používání cp
příkaz.
Syntax:
cp -nr [cesta ke zdrojovému_adresáři] [cesta k cílovému_umístění]
Pomocí tohoto příkazu si můžete být jisti, že vaše soubory a složky nebudou přepsány.
Příklad:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat gaurav@ubuntu:~$
Zde již v cílovém umístění existuje adresář „snap“. Proto použití -n
volba zajistí nepřepsání tohoto adresáře.
Na rozdíl od -i
možnost, zde nebudete vyzváni k přepsání.
Závěr
Za použití cp
příkaz ke kopírování adresářů a jejich obsahu v Linuxu je snadný proces. Chcete-li se dozvědět více o cp
s dalšími dostupnými možnostmi, můžete si manuálovou stránku prohlédnout zadáním muž cp
ve vašem linuxovém terminálu.