Com copiar un directori i el seu contingut a Linux

Utilitzeu l'ordre "cp" per copiar i enganxar directoris sencers d'un lloc a un altre

Independentment del sistema operatiu que utilitzeu, copiar un fitxer o una carpeta d'una ubicació a una altra és la tasca més bàsica que feu diàriament. En un dia ocupat a la feina, durant una tasca de projecte a l'escola o durant el desenvolupament continu d'un projecte, copiar fitxers de la ubicació A a la ubicació B és inevitable.

La còpia de fitxers o carpetes normalment es fa mitjançant la GUI. Linux té cura del vostre hàbit de treballar al terminal proporcionant una utilitat de línia d'ordres que us permet copiar fitxers o carpetes d'una ubicació a una altra. Utilitzant el cp L'ordre amb una varietat d'opcions us ofereix la llibertat de copiar fitxers i carpetes de diverses maneres.

Permeteu-me guiar-vos per aquest article on aprendreu sobre cp comanda i les maneres de copiar directoris juntament amb el seu contingut.

Opcions disponibles amb cp comandament

Aquestes són les opcions més habituals que s'utilitzen amb el cp comanda en el context de copiar un directori i tot el seu contingut.

OpcionsDescripció
-vmode detallat (mostra el progrés)
-r/Rcopiar directoris de manera recursiva
-nno sobreescriu un fitxer o carpeta existent
-ipregunta abans de sobreescriure

Copieu un directori d'una ubicació a una altra

Comencem amb l'ús més bàsic del cp comandament. Utilitzarem aquesta comanda amb l'opció -r.

Utilitzant el -r assegura que les subcarpetes i fitxers dins del directori que esteu copiant també es copiaran.

Sintaxi:

cp -r [ubicació_origen] [ubicació_destinació]

Exemple:

Tinc dos directoris dins del meu directori de treball actual anomenats "projecte" i "espai de treball".

En aquest exemple, faré servir el cp -r comanda per copiar el directori "projecte" juntament amb tot el seu contingut a una nova ubicació, és a dir, "/home/gaurav/workspace". Això simplement vol dir que estic copiant el directori anomenat "projecte" a un directori anomenat "espai de treball".

Aquests són els continguts del directori ‘projecte’. Utilitzant el ls comanda per mostrar-ne el contingut.

gaurav@ubuntu:~/project$ ls -al total 288 drwxr-xr-x 6 gaurav gaurav 4096 set 17 18:26 . drwxr-xr-x 88 gaurav gaurav 266240 17 set 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 17 set 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096 Sep 4096 drwr217 -x 2 gaurav gaurav 4096 set 17 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 set 17 18:25 dem4 -rw-r--r-- 1 gaurav gaurav 24 set 17 18:26 temp.c gaurav@ ubuntu:~/project$

Ara, utilitzant el cp -r Podem copiar el directori "projecte" a qualsevol ubicació desitjada.

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

Sortida:

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

A la sortida anterior, podem veure que el directori "projecte" es copia de la ubicació original a aquesta nova ubicació "/home/gaurav/workspace". Ara, obrim el directori "projecte" i comprovem si tots els continguts que hi ha dins també estan copiats.

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

Nota: He utilitzat ./ aquí en lloc d'entrar al camí complet. Simplement vol dir que és la ruta del meu directori d'inici i que l'espai de treball es troba a la meva casa o al directori de treball actual. Per a més aclariments sobre això, podeu consultar aquest article.

Sortida:

gaurav@ubuntu:~/workspace/project$ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 set 17 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 set 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 set 17 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 set 18 d-rwxr dem2:27 dem2 2 gaurav gaurav 4096 set 17 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 set 17 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 set 17 18:27 temp.c: gaurav@ubuntu ~/espai de treball/projecte$ 

D'aquesta sortida, podem concloure que tots els continguts del directori 'projecte' també es mouen a la nova ubicació.

Còpia de diversos directoris d'una ubicació a una altra

Per copiar diversos directoris, cp L'ordre es pot utilitzar de la mateixa manera que s'ha esmentat anteriorment. L'únic canvi aquí serà que haureu d'introduir els diversos camins d'origen dels múltiples directoris que voleu copiar.

Sintaxi:

cp -r [camí_font_1] [camí_font_n] [camí_font_destinació]

Comprovem aquesta comanda amb un exemple.

Exemple:

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

Aquí, he copiat dos directoris "snap" i "project" del meu directori de treball actual a una nova ubicació "/home/gaurav/tomcat".

Ara comprovem si els directoris es copien amb el seu contingut a la nova ubicació.

gaurav@ubuntu:~/tomcat$ ls -al total 9316 drwxrwxr-x 5 gaurav gaurav 4096 set 19 12:16 . drwxr-xr-x 88 gaurav gaurav 266240 set 19 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 set 19 12:16 project drwxr-xr-x 7 gaurav gaurav 4096 set:16

Comprovant si també es copia el contingut d'aquests directoris.

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$

Utilitzant cp comanda amb mode detallat

Utilitzant el cp comanda amb l'opció -v activa el mode detallat. Aquesta funció mostra els fitxers del terminal que s'estan copiant. El nom del fitxer o carpeta que s'està copiant es mostra al vostre terminal.

Sintaxi:

cp -vr [directori_font] [camí_ubicació_destinació]

Exemple:

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

En aquest exemple, el directori "apache" es copia a una nova carpeta "espai". He utilitzat el -v opció amb -r, de manera que també es copia tot el contingut del directori apache.

Sortida:

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

La sortida mostra el directori que s'està copiant. El mateix procés es pot fer en cas de copiar diversos fitxers.

Eviteu sobreescriure quan feu servir cp comandament

De vegades, mentre s'utilitza el cp per copiar diversos fitxers o carpetes, podeu acabar sobreescriure els fitxers que ja s'han copiat a la nova ubicació. Per evitar-ho, s'aconsella utilitzar el -i opció amb el cp comandament. Això us demanarà abans de sobreescriure qualsevol fitxer o carpeta.

Sintaxi:

cp -ri [camí_directori_font] [camí_ubicació_destinació]

Nota: Aquí, en la sintaxi que he utilitzat -r opció també. Això també copiarà el contingut dels directoris. També comprovarà si alguna d'aquestes subcarpetes i fitxers dins del directori s'està sobreescriu.

Exemple:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: sobreescriu './tomcat/snap/pycharm-community/current'?

Aquí, vaig intentar copiar un directori anomenat "snap" a una ubicació nova. Però el nom del directori "snap" ja existeix a la nova ubicació. Per tant, el terminal em demanarà abans de sobreescriure el directori de snap existent.

Podeu escriure ''o'No"com a resposta a aquest missatge.

En cas, si no feu servir el -i opció, el directori existent se sobreescriurà pel directori nou.

Omet la sobreescritura de fitxers i directoris amb cp comandament

Podem utilitzar el -n opció per indicar directament al terminal que no sobreescrigui mai i simplement ometi fitxers i directoris similars mentre utilitza el cp comandament.

Sintaxi:

cp -nr [camí_directori_font] [camí_ubicació_destinació]

Amb aquesta ordre podeu estar segur que els vostres fitxers i carpetes no es sobreescriuran.

Exemple:

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

Aquí, el directori "snap" ja existeix a la ubicació de destinació. Per tant, utilitzant -n opció assegurarà de no sobreescriure aquest directori.

A diferència -i opció, aquí no se us demanarà sobre la sobreescriptura.

Conclusió

Utilitzant el cp L'ordre per copiar directoris i el seu contingut a Linux és un procés fàcil. Per obtenir més informació sobre el cp comanda amb altres opcions disponibles, podeu consultar la pàgina del manual escrivint home cp al vostre terminal Linux.