Jak zkopírovat adresář a jeho obsah v Linuxu

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žnostiPopis
-protipodrobný režim (ukazuje průběh)
-r/Rrekurzivně kopírovat adresáře
-nnepřepisujte existující soubor nebo složku
-ivý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.