Section courante

A propos

Section administrative du site

 Système d'exploitation  Installation  Utilisation  Tutoriel  Programmation  Outils  Annexe  Aide 
Amiga
Apple
CP/M / DOS
CoCo
Cray
Mainframe
Mobile
OS/2
TRS-80
UNIX
Windows
Autres
AmigaDOS
AmigaOS
MorphOS
Apple DOS
System 1.0
System 1.1
System 2.0
System 3.0
System 3.1
System 3.2
System 3.3
System 4.0
System 4.1
System 4.2
System 4.3
System 6.0
System 7.0
System 7.1
System 7.5
System 7.6
Mac OS 8.0
Mac OS 8.1
Mac OS 8.5
Mac OS 8.6
Mac OS 9.0
Mac OS 9.1
Mac OS 9.2
Mac OS X
Mac OS X Server
Apple DOS
Caldera DR-DOS 7
CP/M
CP/M-80
CP/M-86
DOS
DR-DOS
FreeDOS
IBM DOS 4
IBM DOS 5
MS-DOS
PC DOS
PTS-DOS
DR-DOS 5
DR-DOS 6
DR-DOS 7
MS-DOS 1.25
MS-DOS 2.0
MS-DOS 2.11
MS-DOS 3.0
MS-DOS 3.20
MS-DOS 3.21
MS-DOS 3.3
MS-DOS 4
MS-DOS 5
MS-DOS 6
MS-DOS 6.2
MS-DOS 7.10
PC DOS 1.0
PC DOS 1.1
PC DOS 2.0
PC DOS 2.1
PC DOS 3.0
PC DOS 3.1
PC DOS 3.2
PC DOS 3.3
PC DOS 4.0
PC DOS 4.01
PC DOS 5.0
PC DOS 6.1
PC DOS 6.3
PC DOS 7.0
PC DOS 2000
FLEX
OS-9
COS
UNICOS
OpenVMS
OS/390
OS/400
VAX/VMS
z/OS
Android OS
Bada
EPOC
PalmOS
Citrix Multiuser
eComStation
OS/2 Version 1
OS/2 Version 1.1
OS/2 Version 1.2
OS/2 Version 1.3
OS/2 Version 2
OS/2 Version 2.1
OS/2 Warp 3
OS/2 Warp 4
LDOS
MultiDOS
NEWDOS
TRSDOS
AIX
FreeBSD
HP-UX
Linux
QNX
SkyOS
Solaris (SunOS)
UNIX
XENIX
ReactOS
Windows 95
Windows 98
Windows Me
Windows NT 4.0 Server
Windows 2000 Professionnel
Windows 2000 Server
Windows XP
Windows Server 2003
Windows Server 2003 R2
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows Server 2019
Windows Vista
Windows 7
Windows 8
Windows 10
Windows 11
FLEX
KolibriOS
Inferno
Medos-2
Oberon
Plan 9
p-System
RDOS
CentOS
Corel Linux 1.2
Debian GNU/Linux 7.5
Lindows 4.0.302
openSUSE 11.2
Red Hat Linux 9.0
Red Star Desktop 3.0
TurnKey Core
Ubuntu 9.10
CentOS 6.5
CentOS 7
Installer Python 2.7 pour utilisateur unique sous CentOS 5.8
Introduction
Références des distributions
Références des commandes
Références des fichiers
CentOS
Debian
Fedora
openSUSE
Red Hat Linux
Slackware
TurboLinux
Ubuntu
Utilitaire
Niveau
Catégorie
Déterminer la version
Copier des répertoires
Les partitions
Les groupes
C pour Linux
Pascal pour Linux
AWK
BASH
C Shell
Free Pascal
MySQL
Perl
Python
TCL
Yabasic
Interruption 80h
MobaXterm
putty
Ext2, Ext3 & Ext4
Base de connaissances
Bibliographie
Préface
Notes légal
Dictionnaire
Recherche

Copier des répertoires

La copie de répertoires sous les distributions Linux est une partie importante de chaque routine d'un administrateur système. Si vous travaillez avec Linux depuis un certain temps, vous savez combien il est important de garder vos dossiers bien structurés. Dans certains cas, vous devrez peut-être copier certains répertoires sur votre système afin de réorganiser la structure de votre système de fichiers principal. Voici une brève tutoriel de la façon de procédé.

Copie des répertoires Linux

Pour copier un répertoire sous les distributions Linux, vous devez exécuter la commande «cp» avec le paramètre «-R» pour indiquer récursivement dans les sous-répertoires et spécifier les répertoires source et de destination à copier. Voici la syntaxe :

cp -R dossier_source dossier_destination

À titre d'exemple, disons que vous souhaitez copier le répertoire «/etc» dans un dossier de sauvegarde nommé «/etc_bak». Le dossier «/etc_bak» est également situé à la racine de votre système de fichiers. Afin de copier le répertoire «/etc» dans ce dossier de sauvegarde, vous exécutez la commande suivante :

cp -R /etc /etc_bak

En exécutant cette commande, le dossier «/etc» sera copié dans «/etc_bak».

Copie le contenu du répertoire de manière récursive sous Linux

Pour copier le contenu d'un répertoire de manière récursive, vous devez utiliser la commande cp avec le paramètre -R et spécifier le répertoire source suivi d'un caractère générique.

cp -R dossier_source/* dossier_destination

Compte tenu de notre exemple précédent, disons que nous voulons copier le contenu du répertoire «/etc» dans le dossier «/etc_bak». Pour y parvenir, nous écririons la commande suivante :

cp -R /etc/* /etc_bak

En affichant la liste du contenu du dossier de sauvegarde, vous vous rendrez compte que le dossier lui-même n'a pas été copié mais que son contenu l'était :

ls -l /etc_bak

on obtiendra un résultat ressemblant à ceci :

total 852
drwxr-xr-x  3 root root       4096 Jan 19 18:13 NetworkManager
drwxr-xr-x  4 root root       4096 Jan 19 18:12 X11
drwxr-xr-x  3 root root       4096 Jan 19 18:12 acpi
-rw-r--r--  1 root root       3028 Jan 19 18:07 adduser.conf
drwxr-xr-x  2 root root       4096 Jan 21 13:51 alternatives
drwxr-xr-x  3 root root       4096 Jan 19 18:12 apm
drwxr-xr-x  3 root root       4096 Jan 19 18:13 apparmor
drwxr-xr-x  9 root root       4096 Jan 19 18:15 apparmor.d
drwxr-xr-x  3 root root       4096 Jan 19 18:15 apport
drwxr-xr-x  7 root root       4096 Jan 21 16:01 apt
-rw-r-----  1 root daemon      144 Feb 20  2018 at.deny
-rw-r--r--  1 root root       2319 Apr  4  2018 bash.bashrc
-rw-r--r--  1 root root         45 Apr  2  2018 bash_completion

Copier plusieurs répertoires avec cp

Pour copier plusieurs répertoires sous Linux, vous devez utiliser la commande «cp» et lister les différents répertoires à copier ainsi que le dossier de destination.

cp -R dossier_source_1 dossier_source_2 ... dossier_source_n dossier_destination

À titre d'exemple, disons que nous souhaitons copier le répertoire «/etc» ainsi que tous les répertoires home situés dans le répertoire «/home». Pour y parvenir, nous exécuterons la commande suivante :

cp -R /etc/* /home/* /etc_bak

Copier les répertoires sur les hôtes à distance

Dans certains cas, vous souhaiterez peut-être copier un répertoire afin de conserver une sauvegarde sur un serveur de sauvegarde. Inutile de dire que votre serveur de sauvegarde est localement à distance : vous devez copier votre répertoire sur le réseau. Pour copier des répertoires vers des emplacements à distances, vous devez utiliser la commande rsync, spécifiez le dossier source ainsi que la destination à distance vers laquelle copier. Assurez-vous d'inclure le paramètre «-r» pour «récursif» et l'option «-a» pour «tous» (sinon les fichiers non réguliers seront ignorés). Voici la syntaxe :

rsync -ar dossier_source utilisateur_destination@hote_destination:chemin

Toutefois, si l'utilitaire «rsync» n'est pas installé sur votre distribution Linux, assurez-vous de l'installer en utilisant les privilèges sudo de la manière suivante :

sudo apt-get install rsync
sudo yum install rsync

À titre d'exemple, disons que nous devons copier le dossier «/etc» sur un serveur de sauvegarde situé à 192.168.0.77/24. Nous voulons copier le répertoire dans le «/etc_bak» du serveur à distance, avec le nom d'utilisateur «gladir». Pour y parvenir, nous exécuterons la commande suivante :

rsync -ar /etc gladir@192.168.0.77:/etc_bak

De même, vous pouvez choisir de copier le contenu du répertoire «/etc/» plutôt que le répertoire lui-même en ajoutant un caractère générique après le répertoire à copier :

rsync -ar /etc/* gladir@192.168.0.77:/etc_bak/

Enfin, si vous souhaitez introduire la date actuelle lors d'une sauvegarde de répertoire, vous pouvez utiliser la substitution de paramètre Bash :

rsync -ar /etc/* gladir@192.168.0.77:/etc_bak/etc_$(date "+%F")

Copie à l'aide de la commande scp

Afin de copier le répertoire sous une distribution Linux vers un emplacement à distance, vous pouvez exécuter la commande «scp» avec le paramètre «-r» pour récursive suivie du répertoire à copier et du dossier de destination :

scp -r dossier_source utilisateur_destination@hote_destination:chemin

À titre d'exemple, disons que nous voulons copier le répertoire «/etc» sur un serveur de sauvegarde situé à 192.168.0.77 dans le dossier «/etc_bak». Pour ce faire, vous exécutez la commande suivante :

scp -r /etc gladir@192.168.0.77:/etc_bak/

De la même manière que pour la commande rsync, vous pouvez choisir d'utiliser la substitution de paramètres Bash pour copier votre répertoire dans un répertoire personnalisé sur votre distribution Linux :

scp -r /etc devconnected@192.168.0.77:/etc_bak/etc_$(date "+%F")


PARTAGER CETTE PAGE SUR
Dernière mise à jour : Vendredi, le 22 janvier 2021