Cum să copiați un director și conținutul acestuia în Linux

Utilizați comanda „cp” pentru a copia și lipi directoare întregi dintr-un loc în altul

Indiferent de sistemul de operare pe care îl executați, copierea unui fișier sau a unui folder dintr-o locație în alta este cea mai de bază sarcină pe care o efectuați zilnic. Într-o zi plină de muncă, în timpul unei sarcini de proiect la școală sau în timpul dezvoltării continue a unui proiect, copierea fișierelor din locația A în locația B este inevitabil.

Copierea fișierelor sau folderelor se face de obicei folosind GUI. Linux are grijă de obiceiul dvs. de a lucra pe terminal, oferind un utilitar de linie de comandă care vă permite să copiați fișiere sau foldere dintr-o locație în alta. Folosind cp comanda cu o varietate de opțiuni vă oferă libertatea de a copia fișiere și foldere în mai multe moduri.

Permiteți-mi să vă ghidez prin acest articol unde veți afla despre cp comanda și modalitățile de a copia directoare împreună cu conținutul acestora.

Opțiuni disponibile cu cp comanda

Acestea sunt cele mai frecvente opțiuni utilizate cu cp comandă în contextul copierii unui director și a întregului conținut al acestuia.

OpțiuniDescriere
-vmodul verbos (afișează progresul)
-r/Rcopiați directoare recursiv
-nnu suprascrieți un fișier sau un folder existent
-iprompt înainte de suprascriere

Copiați un director dintr-o locație în alta

Să începem cu cea mai simplă utilizare a cp comanda. Vom folosi această comandă cu opțiunea -r.

Folosind -r opțiunea asigură că subfolderele și fișierele din directorul pe care îl copiați vor fi de asemenea copiate.

Sintaxă:

cp -r [locație_sursă] [locație_țintă]

Exemplu:

Am două directoare în directorul meu de lucru actual numit „proiect” și „spațiu de lucru”.

În acest exemplu, voi folosi cp -r comandă pentru a copia directorul „proiect” împreună cu tot conținutul său într-o nouă locație, adică „/home/gaurav/workspace”. Aceasta înseamnă pur și simplu că copiez directorul numit „proiect” într-un director numit „spațiu de lucru”.

Acestea sunt conținutul directorului „proiect”. Folosind ls comanda pentru a-și afișa conținutul.

gaurav@ubuntu:~/project$ ls -al total 288 drwxr-xr-x 6 gaurav gaurav 4096 Sep 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 4096 Sep 4096 Sep 17: drwr217 -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.c gaurav@ ubuntu:~/proiect$

Acum, folosind cp -r comandă putem copia directorul „proiect” în orice locație dorită.

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

Ieșire:

gaurav@ubuntu:~/workspace$ ls -al total 408 drwxrwxr-x 4 gaurav gaurav 4096 Sep 17 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 17 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 Mar 22 2018 .metadata drwxr-xr-x 6 gaurav gaurav 4096 Sep 4096 proiect -r 8w-17 -- 1 gaurav gaurav 1535 Sep 16 17:13 source.c gaurav@ubuntu:~/workspace$ 

În rezultatul de mai sus, putem vedea că directorul „proiect” este copiat din locația originală în această nouă locație „/home/gaurav/workspace”. Acum, să deschidem directorul „proiect” și să verificăm dacă tot conținutul din interiorul acestuia este de asemenea copiat.

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

Notă: am folosit ./ aici în loc să intri pe calea completă. Înseamnă pur și simplu că este calea directorului meu de acasă și spațiul de lucru se află în directorul meu de acasă sau curent de lucru. Pentru mai multe clarificări despre acest lucru, puteți consulta acest articol.

Ieșire:

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 Sep 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 Sep 17 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 Sep 18 drwxr-xr 18:27 dem2 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 temp.c: gaurav@ubuntu ~/spațiu de lucru/proiect$ 

Din această ieșire, putem concluziona că tot conținutul directorului „proiect” este, de asemenea, mutat în noua locație.

Copierea mai multor directoare dintr-o locație în alta

Pentru a copia mai multe directoare, cp comanda poate fi folosită în același mod ca cel menționat mai sus. Singura modificare aici va fi că va trebui să introduceți căile surse multiple ale mai multor directoare care urmează să fie copiate.

Sintaxă:

cp -r [cale_sursă_1] [cale_sursă_n] [cale_destinație]

Să verificăm această comandă cu un exemplu.

Exemplu:

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

Aici, am copiat două directoare „snap” și „project” din directorul meu de lucru actual într-o nouă locație „/home/gaurav/tomcat”.

Acum haideți să verificăm dacă directoarele sunt copiate cu conținutul lor în noua locație.

gaurav@ubuntu:~/tomcat$ ls -al total 9316 drwxrwxr-x 5 gaurav gaurav 4096 Sep 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 proiect drwxr-xr-x 7 gaurav gaurav 4096 Sep 16:16

Verificarea dacă conținutul acestor directoare este și el copiat.

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$

Folosind cp comandă cu modul verbose

Folosind cp comanda cu opțiunea -v activează modul verbose. Această caracteristică afișează fișierele de pe terminal care sunt copiate. Numele fișierului sau folderului care este copiat este afișat pe terminalul dvs.

Sintaxă:

cp -vr [director_sursă] [cale_locație_țintă]

Exemplu:

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

În acest exemplu, directorul „apache” este copiat într-un nou folder „spațiu”. Am folosit -v opțiunea cu -r, astfel încât tot conținutul directorului apache să fie de asemenea copiat.

Ieșire:

'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz' gaurav@ubuntu:~$

Ieșirea afișează directorul care este copiat. Același proces se poate face și în cazul copierii mai multor fișiere.

Evitați suprascrierea când utilizați cp comanda

Uneori, în timp ce utilizați cp comandă pentru a copia mai multe fișiere sau foldere, puteți ajunge să suprascrieți fișierele care sunt deja copiate în noua locație. Pentru a evita acest lucru, este recomandabil să utilizați -i opțiunea cu cp comanda. Acest lucru vă va cere înainte de a suprascrie orice fișier sau folder.

Sintaxă:

cp -ri [cale_director_sursă] [cale_locație_țintă]

Notă: Aici, în sintaxa pe care am folosit-o -r optiunea de asemenea. Acesta va copia și conținutul directoarelor. De asemenea, va verifica dacă vreunul dintre aceste subdosare și fișiere din director este suprascris.

Exemplu:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: suprascrie „./tomcat/snap/pycharm-community/current”?

Aici, am încercat să copiez un director numit „snap” într-o nouă locație. Dar numele directorului „snap” există deja în noua locație. Prin urmare, voi fi solicitat de terminal înainte de a suprascrie directorul snap existent.

Puteți tasta „da‘ sau ‘Nu' ca răspuns la acest prompt.

În cazul în care, dacă nu utilizați -i opțiunea, directorul existent va fi suprascris de noul director.

Omite suprascrierea fișierelor și directoarelor cu cp comanda

Putem folosi -n opțiunea de a instrui direct terminalul să nu suprascrie niciodată și să omite pur și simplu fișiere și directoare similare în timpul utilizării cp comanda.

Sintaxă:

cp -nr [cale_director_sursă] [cale_locație_țintă]

Folosind această comandă, puteți fi sigur că fișierele și folderele dvs. nu vor fi suprascrise.

Exemplu:

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

Aici, directorul „snap” există deja în locația țintă. Prin urmare, folosind -n opțiunea se va asigura că nu se suprascrie acest director.

Spre deosebire de -i opțiunea, aici nu vi se va solicita suprascriere.

Concluzie

Folosind cp comanda pentru a copia directoare și conținutul acestora în Linux este un proces ușor. Pentru a afla mai multe despre cp comandă cu alte opțiuni disponibile, puteți consulta pagina manualului tastând om cp în terminalul dvs. Linux.