Comment copier des fichiers et des répertoires sous Linux
La copie de fichiers et de répertoires est l’une des tâches les plus courantes que vous effectuerez lorsque vous travaillez en ligne de commande. Il existe plusieurs commandes pour copier des fichiers sous Linux, avec cp
et rsync
étant les outils les plus utilisés.
Il est courant d’utiliser la commande cp
pour copier des fichiers et rsync
pour copier des répertoires.
Pour pouvoir copier des fichiers et des répertoires, vous devez avoir au moins des autorisations de lecture sur le fichier source et des autorisations d’écriture sur le répertoire de destination.
Copie de fichiers avec la commande cp #
Sur les systèmes d’exploitation Linux et Unix, la commande cp
est utilisée pour copier des fichiers et des répertoires.
Le cas d’utilisation le plus simple consiste à copier un fichier dans le répertoire de travail actuel. Par exemple, pour copier un fichier nommé file.txt
dans un fichier nommé file_backup.txt
dans le répertoire courant, vous devez exécuter la commande suivante:
cp file.txt file_backup.txt
Si le fichier de destination existe, il sera écrasé. Pour obtenir une invite de confirmation avant d’écraser les fichiers, utilisez l’option -i
.
cp -i file.txt file_backup.txt
Par défaut, lors de l’utilisation de la commande cp
pour copier un fichier, le nouveau fichier appartient à l’utilisateur exécutant la commande. Utilisez l’option -p
pour conserver le mode de fichier, la propriété et les horodatages :
cp -p file.txt file_backup.txt
Une autre option qui peut être utile est -v
. Lorsque vous utilisez cette option, la commande affiche ce qui se fait:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
Copiez un fichier dans un répertoire #
Pour copier un fichier dans un répertoire, spécifiez le chemin absolu ou relatif vers le répertoire. Lorsque le répertoire de destination est omis, le fichier est copié dans le répertoire courant.
Dans l’exemple suivant, nous copions le fichier file.txt
dans le répertoire /backup
:
cp file.txt /backup
Lorsque vous spécifiez uniquement le nom du répertoire comme destination, le fichier copié aura le même nom que le fichier d’origine.
Si vous souhaitez copier le fichier sous un nom différent, vous devez spécifier le nom de fichier souhaité:
cp file.txt /backup/new_file.txt
La commande ci-dessus copiera le fichier dans le répertoire spécifié sous la forme new_file.txt
.
Copier plusieurs fichiers #
Pour copier plusieurs fichiers et répertoires à la fois, spécifiez les noms des fichiers et répertoires source suivis du répertoire de destination comme dernier argument:
cp file.txt dir file1.txt file2.txt dir1
Lors de la copie de plusieurs fichiers, la destination doit être un répertoire.
La commande cp
vous permet également d’utiliser la correspondance de motifs. Par exemple, pour copier tous les fichiers .png
du répertoire courant vers le répertoire /backup
, vous devez utiliser :
cp *.png /backup
Copie de répertoires avec la commande cp #
Pour copier un répertoire, y compris tous ses fichiers et sous-répertoires, utilisez le -R
ou -r
option. Dans l’exemple suivant, nous copions le répertoire Pictures
dans Pictures_backup
:
cp -R Pictures Pictures_backup
La commande ci-dessus va créer le répertoire de destination et copier récursivement tous les fichiers et sous-répertoires de la source vers le répertoire de destination.
Si le répertoire de destination existe déjà, le répertoire source lui-même et son contenu sont copiés dans le répertoire de destination. Pour copier uniquement les fichiers et sous-répertoires mais pas le répertoire cible, utilisez l’option -T
:
cp -RT Pictures Pictures_backup
Les options utilisées lors de la copie de fichiers peuvent également être utilisées lors de la copie de répertoires. La principale différence est que lors de la copie de répertoires, vous devez utiliser l’option -R
.
Copier des fichiers et des répertoires avec la commande rsync #
rsync
est un utilitaire de ligne de commande rapide et polyvalent qui synchronise les fichiers et les répertoires entre deux emplacements. Il peut être utilisé pour copier des fichiers vers des emplacements locaux et distants.
rsync
inclut de nombreuses options qui contrôlent tous les aspects de son comportement
L’option la plus utile est -a
qui copient récursivement des répertoires, transfèrent des périphériques spéciaux et bloquent et préservent les liens symboliques, les temps de modification, le groupe, la propriété et les autorisations.
Pour copier un seul fichier d’un emplacement à un autre, vous devez exécuter la commande suivante :
rsync -a file.txt file_backup.txt
Si le fichier de destination existe, rsync
l’écrasera.
La même commande peut être utilisée pour copier un répertoire:
rsync -a /var/www/public_html/ /var/www/public_html_backup/
rsync
menace différemment les répertoires source qui se terminent par une barre oblique /
. Si vous ajoutez une barre oblique de fin sur le répertoire source, la commande copiera uniquement le contenu du répertoire source dans le répertoire de destination. Lorsque la barre oblique de fin est omise, rsync
copie le répertoire source dans le répertoire de destination. L’option la plus sûre consiste toujours à inclure la barre oblique de fin /
à la fois sur la destination et la source.
Pour en savoir plus sur rsync
consultez les articles suivants:
- Comment utiliser Rsync pour le Transfert et la Synchronisation de données locales et distantes
- Comment exclure des fichiers et des répertoires avec Rsync
Conclusion #
Nous vous avons montré comment copier des fichiers et des répertoires dans des systèmes Linux et Unix, en utilisant le cp
et rsync
utilitaires.
Leave a Reply