Ako skopírovať adresár a jeho obsah v systéme Linux

Pomocou príkazu „cp“ skopírujte a prilepte celé adresáre z jedného miesta na druhé

Bez ohľadu na to, aký operačný systém používate, kopírovanie jedného súboru alebo priečinka z jedného miesta na druhé je najzákladnejšou úlohou, ktorú denne vykonávate. V náročnom dni v práci, počas zadania projektu v škole alebo počas prebiehajúceho vývoja projektu je kopírovanie súborov z miesta A do miesta B nevyhnutné.

Kopírovanie súborov alebo priečinkov sa zvyčajne vykonáva pomocou GUI. Linux sa postará o váš zvyk pracovať na termináli poskytnutím nástroja príkazového riadka, ktorý vám umožní kopírovať súbory alebo priečinky z jedného miesta na druhé. Pomocou cp príkaz s rôznymi možnosťami vám dáva slobodu kopírovať súbory a priečinky rôznymi spôsobmi.

Dovoľte mi, aby som vás previedol týmto článkom, v ktorom sa dozviete o cp príkaz a spôsoby kopírovania adresárov spolu s ich obsahom.

Dostupné možnosti s cp príkaz

Toto sú najbežnejšie možnosti používané s cp v kontexte kopírovania adresára a celého jeho obsahu.

možnostiPopis
-vpodrobný režim (zobrazuje priebeh)
-r/Rrekurzívne kopírovať adresáre
-nneprepisujte existujúci súbor alebo priečinok
-ivyzvať pred prepísaním

Skopírujte adresár z jedného miesta na druhé

Začnime s najzákladnejším použitím cp príkaz. Tento príkaz použijeme s možnosťou -r.

Pomocou -r voľba zaisťuje, že sa skopírujú aj podpriečinky a súbory v adresári, ktorý kopírujete.

Syntax:

cp -r [zdrojové_umiestnenie] [cieľové_umiestnenie]

Príklad:

V mojom aktuálnom pracovnom adresári mám dva adresáre s názvom „projekt“ a „pracovný priestor“.

V tomto príklade použijem cp -r príkaz na skopírovanie adresára „projekt“ spolu s celým jeho obsahom na nové miesto, t. j. „/home/gaurav/workspace“. To jednoducho znamená, že kopírujem adresár s názvom „projekt“ do adresára s názvom „pracovný priestor“.

Toto je obsah adresára „projekt“. Pomocou ls príkaz na zobrazenie jeho obsahu.

gaurav@ubuntu:~/project$ ls -al spolu 288 drwxr-xr-x 6 gaurav gaurav 4096 17. september 18:26 . drwxr-xr-x 88 gaurav gaurav 266240 17. september 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 17. september 18:25 dem1, drwxr-xr-x 2 2m. -x 2 gaurav gaurav 4096 17. september 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17. september 18:25 dem4 -rw-r--r-- 1 gaurav temp gaurav 24. 8. 24. september: 1. september ubuntu:~/projekt$

Teraz pomocou cp -r príkazom môžeme skopírovať adresár „projekt“ na ľubovoľné požadované miesto.

gaurav@ubuntu:~$ cp -r /home/gaurav/project /home/gaurav/workspace gaurav@ubuntu:~$

Výkon:

gaurav@ubuntu:~/workspace$ ls -al celkovo 408 drwxrwxr-x 4 gaurav gaurav 4096 17. september 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 17. september 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 22. marec 2018 .metadata drwxr-xr-x 6 ravwr-xr-x 6 ravwr-40 projekt gaur -- 1 gaurav gaurav 1535 16. september 17:13 source.c gaurav@ubuntu:~/workspace$ 

Vo vyššie uvedenom výstupe vidíme, že adresár „projekt“ sa skopíruje z pôvodného umiestnenia do tohto nového umiestnenia „/home/gaurav/workspace“. Teraz otvorme adresár „projekt“ a skontrolujte, či je skopírovaný aj všetok obsah v ňom.

gaurav@ubuntu:~$ cd ./workspace/project gaurav@ubuntu:~/workspace/project$

Poznámka: použil som ./ tu namiesto zadania celej cesty. Jednoducho to znamená, že je to cesta k môjmu domovskému adresáru a pracovný priestor sa nachádza v mojom domovskom alebo aktuálnom pracovnom adresári. Ak chcete získať ďalšie vysvetlenie, môžete si prečítať tento článok.

Výkon:

gaurav@ubuntu:~/workspace/project$ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 Sep 17 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 17. september 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 17. september 18:27 dem1, drwxr-xr-x 2 gaurav:27 gaurav 18:27 Sepx2 2 gaurav gaurav 4096 17. september 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17. september 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24. september: 27. september: 27.u 17. septembra ~/pracovný priestor/projekt$ 

Z tohto výstupu môžeme usúdiť, že všetok obsah adresára „projekt“ sa tiež presunie na nové miesto.

Kopírovanie viacerých adresárov z jedného miesta na druhé

Ak chcete skopírovať viacero adresárov, cp príkaz možno použiť rovnakým spôsobom, ako je uvedené vyššie. Jedinou zmenou tu bude, že budete musieť zadať viacero zdrojových ciest viacerých adresárov, ktoré sa majú skopírovať.

Syntax:

cp -r [zdrojová_cesta_1] [zdrojová_cesta_n] [cieľová_cesta]

Skúsme tento príkaz skontrolovať na príklade.

Príklad:

gaurav@ubuntu:~/workspace$ cp -r ./snap ./project /home/gaurav/tomcat

Tu som skopíroval dva adresáre „snap“ a „projekt“ z môjho aktuálneho pracovného adresára do nového umiestnenia „/home/gaurav/tomcat“.

Teraz skontrolujme, či sú adresáre skopírované s ich obsahom na nové miesto.

gaurav@ubuntu:~/tomcat$ ls -al spolu 9316 drwxrwxr-x 5 gaurav gaurav 4096 19. september 12:16 . drwxr-xr-x 88 gaurav gaurav 266240 19. september 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 19. september 12:16 projekt drwxr-xr-x 7 gaurav 19 gaurav snap:29 Sep.

Kontrola, či sa skopíruje aj obsah týchto adresárov.

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 príkaz s podrobným režimom

Pomocou cp príkaz s možnosťou -v umožňuje podrobný režim. Táto funkcia zobrazuje súbory na termináli, ktoré sa kopírujú. Na vašom termináli sa zobrazí názov súboru alebo priečinka, ktorý sa kopíruje.

Syntax:

cp -vr [zdrojový_adresár] [cesta_cieľového_umiestnenia]

Príklad:

gaurav@ubuntu:~$ cp -vr ./workspace/apache ./space

V tomto príklade sa adresár „apache“ skopíruje do nového priečinka „priestor“. Použil som -v možnosť s -r, takže sa skopíruje aj celý obsah adresára Apache.

Výkon:

'./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ár, ktorý sa kopíruje. Rovnaký proces je možné vykonať v prípade kopírovania viacerých súborov.

Pri používaní sa vyhnite prepisovaniu cp príkaz

Niekedy pri používaní cp na kopírovanie viacerých súborov alebo priečinkov, môžete skončiť prepísaním súborov, ktoré sú už skopírované do nového umiestnenia. Aby ste tomu zabránili, odporúča sa použiť -i možnosť s cp príkaz. To vás vyzve pred prepísaním akéhokoľvek súboru alebo priečinka.

Syntax:

cp -ri [cesta zdrojového_adresára] [cesta_cieľového_umiestnenia]

Poznámka: Tu v syntaxi, ktorú som použil -r možnosť tiež. Tým sa skopíruje aj obsah adresárov. Tiež skontroluje, či sa niektorý z týchto podpriečinkov a súborov v adresári neprepisuje.

Príklad:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: prepísať './tomcat/snap/pycharm-community/current'?

Tu som sa pokúsil skopírovať adresár s názvom „snap“ na nové miesto. Ale názov adresára „snap“ už existuje na novom mieste. Preto budem vyzvaný terminálom pred prepísaním existujúceho adresára snap.

Môžete zadať „Áno"alebo"nie“ ako odpoveď na túto výzvu.

V prípade, ak nepoužívate -i existujúci adresár bude prepísaný novým adresárom.

Preskočiť prepisovanie súborov a adresárov pomocou cp príkaz

Môžeme použiť -n možnosť priamo prikázať terminálu, aby nikdy neprepísal a jednoducho preskočil podobné súbory a adresáre pri používaní cp príkaz.

Syntax:

cp -nr [cesta zdrojového_adresára] [cesta_cieľového_umiestnenia]

Pomocou tohto príkazu si môžete byť istí, že vaše súbory a priečinky nebudú prepísané.

Príklad:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat gaurav@ubuntu:~$

Tu už v cieľovom umiestnení existuje adresár „snap“. Preto používanie -n voľba zabezpečí, že sa tento adresár neprepíše.

Na rozdiel od -i možnosť, tu nebudete vyzvaní na prepísanie.

Záver

Pomocou cp príkaz na kopírovanie adresárov a ich obsahu v systéme Linux je jednoduchý proces. Ak sa chcete dozvedieť viac o cp s ďalšími dostupnými možnosťami si manuálovú stránku môžete pozrieť zadaním muž cp vo vašom termináli Linux.