La duplication et la copie de documents et de registres sont probablement la tâche la plus largement reconnue et la plus couramment utilisée que vous effectuerez lorsque vous travaillerez avec la ligne de commande Linux. Sous Linux, il existe quelques commandes pour dupliquer des documents, les commandes cp et rsync sont les plus connues.
La plupart des utilisateurs de Linux utilisent et utilisent fréquemment la commande cp lors de la copie de fichiers et la commande rsync lors de la copie de répertoires.
Avant de commencer
Pour pouvoir copier des fichiers et des répertoires, vous devez avoir au moins des autorisations de lecture sur les fichiers source et des autorisations d'écriture sur les répertoires de destination.
Copier des fichiers avec la commande cp
La commande cp est un utilitaire de ligne de commande permettant de copier des fichiers et des répertoires sur un système Linux d'un emplacement à un autre sur la même machine.
Le cas d'utilisation le plus simple consiste à copier des fichiers dans le répertoire de travail courant. Par exemple, pour copier un fichier nommé file.txt
dans le répertoire courant en tant que file_backup.txt,
exécutez la commande suivante :
cp file.txt file_backup.txt
Si le fichier de destination existe, les fichiers portant le même nom et la même extension seront écrasés. Pour demander une confirmation, utilisez les options -i
.
cp -i file.txt file_backup.txt
Lors de l'utilisation de la commande cp pour copier des fichiers, les nouveaux fichiers appartiendront à l'utilisateur exécutant la commande. Utilisez l'option -p
pour préserver le mode de fichier, la propriété et les horodatages :
cp -p file.txt file_backup.txt
Une autre option qui pourrait être utile est -v
. Lorsque vous utilisez cette option, la commande imprimera ce qui est en train d'être fait :
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
Copier les fichiers dans un autre répertoire
Pour copier un fichier dans un autre répertoire, vous devez spécifier un chemin absolu ou relatif vers le répertoire de destination. 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é portera le même nom que le fichier d'origine.
Si vous souhaitez copier un fichier avec un nom différent, vous devez spécifier le nom de fichier souhaité :
cp file.txt /backup/file_baru.txt
La commande ci-dessus copiera le fichier dans le répertoire spécifié comme file_baru.txt
.
Copier plusieurs fichiers
Il est également possible de copier plusieurs fichiers à la fois en spécifiant les noms de fichiers suivis du répertoire de destination :
cp file.txt file1.txt file2.txt directory
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 modèles. Par exemple, pour copier tous les fichiers png
du répertoire courant au répertoire /backup
que vous utiliserez :
cp *.png /backup
Comment copier un répertoire sous Linux avec la commande cp
Pour copier un répertoire, y compris tous les fichiers et sous-répertoires, utilisez l'option -R. Dans l'exemple suivant, nous copions le répertoire ~/Pictures
vers le répertoire ~/Pictures_backup
:
cp -R Pictures Pictures_backup
La commande ci-dessus créera un répertoire de destination et copiera de manière récursive tous les fichiers et sous-répertoires de la source vers le répertoire de destination.
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 les options -R
.
Comment copier des fichiers et des répertoires sous Linux avec la commande rsync
Rsync est un utilitaire de ligne de commande rapide et polyvalent. Rsync synchronise les fichiers et les répertoires entre deux emplacements. Rsync peut être utilisé pour copier des fichiers vers un emplacement local ou un emplacement distant.
Rsync fournit un certain nombre d'options qui contrôlent chaque aspect de son comportement. Les options les plus utilisées sont -a
qui copiera les répertoires de manière récursive, transférera les périphériques personnalisés et bloquera, conservera les liens symboliques, les heures de modification, les groupes, la propriété et les autorisations de fichiers.
Pour copier un fichier d'un emplacement à un autre, vous pouvez utiliser la commande suivante :
rsync -a file.txt file_backup.txt
Si le fichier de destination existe, rsync l'écrasera.
Vous pouvez utiliser la même commande que ci-dessus pour copier des répertoires avec rsync :
rsync -a / var / www / public_html / / var / www / public_html_backup /
Notez que Rsync considère les barres obliques /
à la fin de la source avec un concept différent. Si vous ajoutez une barre oblique finale au répertoire source, cela ne fera que copier le contenu de le répertoire vers le répertoire de destination. Lorsque la barre oblique finale est supprimée, rsync copie le répertoire source dans le répertoire de destination.
Conclusion
Dans ce guide, nous avons appris à copier des fichiers et des répertoires sur des systèmes Linux et Unix à l'aide des utilitaires cp et rsync.
Comment installer et configurer Mono sur Rocky Linux 8 et CentOS 8