Comment copier un répertoire et son contenu sous Linux

Utilisez la commande 'cp' pour copier et coller des répertoires entiers d'un endroit à un autre

Quel que soit le système d'exploitation que vous utilisez, la copie d'un fichier ou d'un dossier d'un emplacement à un autre est la tâche la plus élémentaire que vous effectuez quotidiennement. Lors d'une journée bien remplie au travail, pendant une mission de projet à l'école ou pendant le développement en cours d'un projet, la copie de fichiers de l'emplacement A vers l'emplacement B est inévitable.

La copie de fichiers ou de dossiers est généralement effectuée à l'aide de l'interface graphique. Linux prend en charge votre habitude de travailler sur le terminal en fournissant un utilitaire de ligne de commande qui vous permet de copier des fichiers ou des dossiers d'un emplacement à un autre. En utilisant le cp La commande avec une variété d'options vous donne la liberté de copier des fichiers et des dossiers de plusieurs manières.

Laissez-moi vous guider à travers cet article où vous découvrirez les cp commande et les moyens de copier des répertoires avec leur contenu.

Options disponibles avec cp commander

Ce sont les options les plus couramment utilisées avec le cp dans le cadre de la copie d'un répertoire et de tout son contenu.

OptionsLa description
-vmode verbeux (montre la progression)
-r/Rcopier les répertoires de manière récursive
-nne pas écraser un fichier ou un dossier existant
-jeinvite avant écrasement

Copier un répertoire d'un emplacement à un autre

Commençons par l'utilisation la plus basique du cp commander. Nous utiliserons cette commande avec l'option -r.

En utilisant le -r L'option garantit que les sous-dossiers et les fichiers à l'intérieur du répertoire que vous copiez seront également copiés.

Syntaxe:

cp -r [emplacement_source] [emplacement_cible]

Exemple:

J'ai deux répertoires dans mon répertoire de travail actuel appelés « projet » et « espace de travail ».

Dans cet exemple, j'utiliserai le cp -r commande pour copier le répertoire « projet » avec tout son contenu dans un nouvel emplacement, c'est-à-dire « /home/gaurav/workspace ». Cela signifie simplement que je copie le répertoire nommé « projet » dans un répertoire nommé « espace de travail ».

Il s'agit du contenu du répertoire « projet ». En utilisant le ls commande pour afficher son contenu.

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

Maintenant, en utilisant le cp -r commande, nous pouvons copier le répertoire « projet » à n'importe quel emplacement souhaité.

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

Sortir:

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

Dans la sortie ci-dessus, nous pouvons voir que le répertoire 'project' est copié de l'emplacement d'origine vers ce nouvel emplacement '/home/gaurav/workspace'. Maintenant, ouvrons le répertoire « projet » et vérifions si tout le contenu qu'il contient est également copié.

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

Noter: j'ai utilisé ./ ici au lieu d'entrer le chemin complet. Cela signifie simplement qu'il s'agit du chemin de mon répertoire personnel et que l'espace de travail est situé dans mon répertoire personnel ou de travail actuel. Pour plus de précisions à ce sujet, vous pouvez consulter cet article.

Sortir:

gaurav@ubuntu:~/workspace/project$ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 17 sept. 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 17 sept 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 17 sept 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 17 sept 18:27 dem2 drwxr-xr-x 2 gaurav gaurav 4096 17 sept 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17 sept 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 sept 17 18:27 temp.c gaurav@ubuntu: ~/espace de travail/projet$ 

À partir de cette sortie, nous pouvons conclure que tout le contenu du répertoire « projet » est également déplacé vers le nouvel emplacement.

Copie de plusieurs répertoires d'un emplacement à un autre

Pour copier plusieurs répertoires, cp La commande peut être utilisée de la même manière que mentionné ci-dessus. Le seul changement ici sera que vous devrez entrer les multiples chemins source des multiples répertoires à copier.

Syntaxe:

cp -r [chemin_source_1] [chemin_source_n] [chemin_destination]

Vérifions cette commande avec un exemple.

Exemple:

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

Ici, j'ai copié deux répertoires 'snap' et 'project' de mon répertoire de travail actuel vers un nouvel emplacement '/home/gaurav/tomcat'.

Vérifions maintenant si les répertoires sont copiés avec leur contenu dans le nouvel emplacement.

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

Vérifier si le contenu de ces répertoires est également copié.

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$

Utilisant cp commande avec mode verbeux

En utilisant le cp commande avec l'option -v active le mode verbeux. Cette fonction affiche les fichiers sur le terminal qui sont en cours de copie. Le nom du fichier ou du dossier en cours de copie s'affiche sur votre terminal.

Syntaxe:

cp -vr [répertoire_source] [chemin_emplacement_cible]

Exemple:

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

Dans cet exemple, le répertoire « apache » est copié dans un nouveau dossier « espace ». j'ai utilisé le -v option avec -r, de sorte que tout le contenu du répertoire apache soit également copié.

Sortir:

'./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 sortie affiche le répertoire en cours de copie. Le même processus peut être effectué en cas de copie de plusieurs fichiers.

Évitez d'écraser lors de l'utilisation cp commander

Parfois, lors de l'utilisation du cp pour copier plusieurs fichiers ou dossiers, vous risquez d'écraser des fichiers déjà copiés vers le nouvel emplacement. Pour éviter cela, il est conseillé d'utiliser le -je option avec le cp commander. Cela vous demandera avant d'écraser un fichier ou un dossier.

Syntaxe:

cp -ri [chemin_répertoire_source] [chemin_emplacement_cible]

Noter: Ici, dans la syntaxe que j'ai utilisée -r option aussi. Ceci copiera également le contenu des répertoires. Il vérifiera également si l'un de ces sous-dossiers et fichiers à l'intérieur du répertoire est en train d'être écrasé.

Exemple:

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

Ici, j'ai essayé de copier un répertoire nommé 'snap' vers un nouvel emplacement. Mais le nom de répertoire « snap » existe déjà au nouvel emplacement. Par conséquent, je serai invité par le terminal avant d'écraser le répertoire snap existant.

Vous pouvez taper 'Oui' ou 'Non" comme réponse à cette invite.

Au cas où, si vous n'utilisez pas le -je option, le répertoire existant sera écrasé par le nouveau répertoire.

Ignorer l'écrasement des fichiers et des répertoires avec cp commander

Nous pouvons utiliser le -n option pour demander directement au terminal de ne jamais écraser et d'ignorer simplement des fichiers et des répertoires similaires tout en utilisant le cp commander.

Syntaxe:

cp -nr [chemin_répertoire_source] [chemin_emplacement_cible]

En utilisant cette commande, vous pouvez être sûr que vos fichiers et dossiers ne seront pas écrasés.

Exemple:

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

Ici, le répertoire 'snap' existe déjà à l'emplacement cible. Par conséquent, en utilisant -n L'option garantira de ne pas écraser ce répertoire.

contrairement à -je option, ici, vous ne serez pas invité à écraser.

Conclusion

En utilisant le cp La commande de copier des répertoires et leur contenu sous Linux est un processus simple. Pour en savoir plus sur le cp commande avec d'autres options disponibles, vous pouvez consulter la page de manuel en tapant homme cp dans votre terminal Linux.