A „cp” paranccsal teljes könyvtárakat másolhat és illeszthet be egyik helyről a másikra
Függetlenül attól, hogy melyik operációs rendszert futtatja, az egyik fájl vagy mappa egyik helyről a másikra másolása a legalapvetőbb napi feladat. Egy mozgalmas munkanapon, az iskolai projektfeladat során vagy egy projekt folyamatban lévő fejlesztése közben elkerülhetetlen a fájlok másolása A helyről B helyre.
A fájlok vagy mappák másolása általában a grafikus felhasználói felület segítségével történik. A Linux gondoskodik arról, hogy a terminálon dolgozzon, egy parancssori segédprogramot biztosít, amely lehetővé teszi a fájlok vagy mappák egyik helyről a másikra másolását. Használni a cp
paranccsal számos opcióval szabadon másolhat fájlokat és mappákat többféle módon.
Hadd kísérjem végig ezt a cikket, ahol megtudhatja a cp
parancsot és a könyvtárak tartalmukkal együtt másolásának módjait.
Opciók elérhetők cp
parancs
Ezek a leggyakrabban használt opciók a cp
parancsot egy könyvtár és annak teljes tartalmának másolásával összefüggésben.
Opciók | Leírás |
-v | bőbeszédű mód (az előrehaladást mutatja) |
-r/R | könyvtárakat rekurzívan másolni |
-n | ne írjon felül meglévő fájlt vagy mappát |
-én | felülírás előtt |
Könyvtár másolása egyik helyről a másikra
Kezdjük a legalapvetőbb használattal cp
parancs. Ezt a parancsot az opcióval együtt fogjuk használni -r
.
Használni a -r
opció biztosítja, hogy a másolt könyvtárban lévő almappák és fájlok is másolásra kerüljenek.
Szintaxis:
cp -r [forráshely] [célhely]
Példa:
A jelenlegi munkakönyvtáramban két könyvtár van, ezek a „projekt” és a „munkaterület”.
Ebben a példában a cp -r
paranccsal másolja a „projekt” könyvtárat annak teljes tartalmával együtt egy új helyre, azaz a „/home/gaurav/workspace” címre. Ez egyszerűen azt jelenti, hogy a „projekt” nevű könyvtárat egy „munkaterület” nevű könyvtárba másolom.
Ezek a „projekt” könyvtár tartalma. Használni a ls
parancsot a tartalmának megjelenítéséhez.
gaurav@ubuntu:~/project$ ls -al összesen 288 drwxr-xr-x 6 gaurav gaurav 4096 szeptember 17. 18:26 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 17, 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:25 dem1, drwxr-xr-x 2 gaurav gaurav: 417 dem26 sep: 417-xr-8 -x 2 gaurav gaurav 4096 Sep 17 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:25 dem4 -rw-r--r-- 1 gaurav gaurav 24 Sep 17 18:26@ temp. ubuntu:~/projekt$
Most, a cp -r
paranccsal a „projekt” könyvtárat tetszőleges helyre másolhatjuk.
gaurav@ubuntu:~$ cp -r /home/gaurav/project /home/gaurav/workspace gaurav@ubuntu:~$
Kimenet:
gaurav@ubuntu:~/workspace$ ls -al total 408 drwxrwxr-x 4 gaurav gaurav 4096 Sep 17 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 szeptember 17, 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 2018. március 22. .metadata drwxr-xr-x 6 gaurav gaurav 409 - 17 - 17 projekt -- 1 gaurav gaurav 1535 Sep 16 17:13 source.c gaurav@ubuntu:~/workspace$
A fenti kimenetben láthatjuk, hogy a „projekt” könyvtár az eredeti helyről ebbe az új „/home/gaurav/workspace” helyre lett másolva. Most nyissuk meg a „projekt” könyvtárat, és ellenőrizzük, hogy a benne lévő összes tartalom is át van-e másolva.
gaurav@ubuntu:~$ cd ./workspace/project gaurav@ubuntu:~/workspace/project$
Jegyzet: használtam ./
itt ahelyett, hogy a teljes elérési utat megadná. Ez egyszerűen azt jelenti, hogy ez a saját könyvtáram elérési útja, és a munkaterület az otthoni vagy az aktuális munkakönyvtáramban található. Ha többet szeretne megtudni erről, tekintse meg ezt a cikket.
Kimenet:
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 szep 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 szept 17 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 drxw8:2r7 des-xrx21 2 gaurav gaurav 4096 Sep 17 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 Sep 17 18:27 gaurav@ tempunctu: gaurav@ temp. ~/munkaterület/projekt$
Ebből a kimenetből arra a következtetésre juthatunk, hogy a „projekt” könyvtár minden tartalma is átkerül az új helyre.
Több könyvtár másolása egyik helyről a másikra
Több könyvtár másolásához cp
parancs a fent említett módon használható. Az egyetlen változás itt az lesz, hogy meg kell adnia a több másolandó könyvtár több forrásútvonalát.
Szintaxis:
cp -r [forrás_útvonala_1] [forrás_útvonala] [cél_útvonala]
Vizsgáljuk meg ezt a parancsot egy példával.
Példa:
gaurav@ubuntu:~/workspace$ cp -r ./snap ./project /home/gaurav/tomcat
Itt átmásoltam két „snap” és „projekt” könyvtárat a jelenlegi munkakönyvtáramból egy új helyre „/home/gaurav/tomcat”.
Most nézzük meg, hogy a könyvtárak a tartalmukkal együtt át vannak-e másolva az új helyre.
gaurav@ubuntu:~/tomcat$ ls -al összesen 9316 drwxrwxr-x 5 gaurav gaurav 4096 szeptember 19. 12:16 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 19 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 Sep 19 12:16 project drwxr-xr-x 7 gaurav gaurav 4096 1.szep:19.12.
Annak ellenőrzése, hogy ezeknek a könyvtáraknak a tartalma is másolásra került-e.
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$
Használata cp
parancs bőbeszédű móddal
Használni a cp
parancsot az opcióval -v
lehetővé teszi a bőbeszédű módot. Ez a funkció megjeleníti a terminálon lévő fájlokat, amelyek másolás alatt állnak. A másolandó fájl vagy mappa neve megjelenik a terminálon.
Szintaxis:
cp -vr [forráskönyvtár] [célhely_útvonal]
Példa:
gaurav@ubuntu:~$ cp -vr ./workspace/apache ./space
Ebben a példában az „apache” könyvtárat egy új „space” mappába másoljuk. Használtam a -v
opcióval -r
, így az apache könyvtár minden tartalma is másolásra kerül.
Kimenet:
'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz' gaurav@ubuntu:~$
A kimeneten megjelenik a másolás alatt álló könyvtár. Ugyanez a folyamat elvégezhető több fájl másolásakor is.
Használat közben kerülje a felülírást cp
parancs
Néha használat közben a cp
paranccsal több fájl vagy mappa másolásához, akkor előfordulhat, hogy felülírja azokat a fájlokat, amelyek már át vannak másolva az új helyre. Ennek elkerülése érdekében tanácsos a -én
opcióval a cp
parancs. Ez megkérdezi, mielőtt felülírna bármilyen fájlt vagy mappát.
Szintaxis:
cp -ri [forrás_könyvtár_útvonala] [cél_hely_útvonala]
Jegyzet: Itt, az általam használt szintaxisban -r
opciót is. Ez a könyvtárak tartalmát is átmásolja. Azt is ellenőrzi, hogy a könyvtárban lévő almappák és fájlok valamelyike felülírásra kerül-e.
Példa:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: felülírja: './tomcat/snap/pycharm-community/current'?
Itt megpróbáltam átmásolni egy „snap” nevű könyvtárat egy új helyre. De a „snap” könyvtárnév már létezik az új helyen. Ezért a terminál kérni fog a meglévő snap könyvtár felülírása előtt.
beírhatod, hogyIgen
"vagy"Nem
’ válaszként erre a felszólításra.
Abban az esetben, ha nem használja a -én
opciót, a meglévő könyvtárat felülírja az új könyvtár.
A fájlok és könyvtárak felülírásának kihagyása a cp
parancs
Használhatjuk a -n
opció, amellyel közvetlenül utasíthatja a terminált, hogy soha ne írjon felül, és egyszerűen átugorja a hasonló fájlokat és könyvtárakat a használata közben cp
parancs.
Szintaxis:
cp -nr [forrás_könyvtár_útvonala] [cél_hely_útvonala]
Ezzel a paranccsal biztos lehet benne, hogy a fájlok és mappák nem kerülnek felülírásra.
Példa:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat gaurav@ubuntu:~$
Itt a „snap” könyvtár már létezik a célhelyen. Ezért használva -n
opció biztosítja, hogy ne írja felül ezt a könyvtárat.
nem úgy mint -én
opciót, itt nem kap értesítést a felülírásról.
Következtetés
Használni a cp
paranccsal a könyvtárak és tartalmuk másolása Linuxon egy egyszerű folyamat. Ha többet szeretne megtudni a cp
parancsot a többi elérhető lehetőséggel, gépelve megtekintheti a kézikönyv oldalát férfi cp
a Linux terminálon.