Aller au contenu principal

La commande cp

La commande cp dans les systèmes d'exploitation de type Unix est un outil puissant pour copier des fichiers et des répertoires. Elle signifie "copier" et est utilisée de manière intensive par les administrateurs système et les développeurs pour gérer les systèmes de fichiers.

Introduction à cp

La commande cp est simple mais polyvalente. Elle vous permet de copier un ou plusieurs fichiers ou répertoires vers un autre emplacement dans votre système de fichiers. Avec cp, vous pouvez dupliquer des fichiers, sauvegarder des données importantes ou même créer une hiérarchie de répertoires avec une seule commande.

Syntaxe de base

La syntaxe de base de la commande cp est la suivante :

cp [options] source destination
  • source : Le ou les fichiers(s) ou répertoire(s) que vous souhaitez copier.
  • destination : L'emplacement cible où vous souhaitez que le ou les fichiers(s) ou répertoire(s) soient copiés.

Options

La commande cp est accompagnée d'une variété d'options qui modifient son comportement. Voici quelques options couramment utilisées :

  • -a : Mode archive ; préserve les attributs de fichier et copie les répertoires de manière récursive.
  • -i : Mode interactif ; demande une confirmation avant écrasement.
  • -f : Mode force ; écrase les fichiers existants sans demander de confirmation.
  • -n : Ne pas écraser un fichier existant.
  • -p : Préserve le mode du fichier, la propriété et les horodatages.
  • -r : Mode récursif ; copie les répertoires de manière récursive.
  • -u : Mode mise à jour ; copie uniquement lorsque le fichier source est plus récent que le fichier de destination.
  • -v : Mode verbeux ; affiche la progression de l'opération de copie.

Copie de fichiers

Pour copier un seul fichier, vous pouvez utiliser la commande cp suivie du fichier source et du fichier ou répertoire de destination.

Exemple 1 : Copie d'un seul fichier

cp example.txt /home/user/backup/

Cette commande copie example.txt du répertoire courant vers le répertoire /home/user/backup/. Si example.txt existe déjà dans la destination, il sera écrasé.

Sortie : Pas de sortie affichée à moins que vous n'utilisiez l'option -v pour le mode verbeux.

Exemple 2 : Copie avec un nouveau nom de fichier

cp example.txt /home/user/backup/example_backup.txt

Ici, example.txt est copié vers le répertoire /home/user/backup/ et renommé en example_backup.txt.

Sortie : Pas de sortie à moins que -v soit utilisé.

Copie de répertoires

La copie de répertoires nécessite l'option récursive -r pour inclure tous les fichiers et sous-répertoires.

Exemple 3 : Copie d'un répertoire

cp -r my_directory/ /home/user/backup/

Cette commande copie de manière récursive le répertoire my_directory et son contenu vers le répertoire /home/user/backup/.

Sortie : Pas de sortie à moins que -v soit utilisé.

Préservation des attributs

Pour préserver les attributs de fichier tels que les horodatages et les permissions d'accès, utilisez l'option -p.

Exemple 4 : Préservation des attributs de fichier

cp -p example.txt /home/user/backup/

Cette commande copie example.txt tout en préservant ses attributs.

Sortie : Pas de sortie à moins que -v soit utilisé.

Copie interactive

Pour éviter d'écraser accidentellement des fichiers, utilisez l'option -i pour demander une confirmation avant l'écrasement.

Exemple 5 : Mode interactif

cp -i example.txt /home/user/backup/

Si example.txt existe dans la destination, cp demandera une confirmation avant de continuer.

Sortie :

cp: écraser '/home/user/backup/example.txt' ?

Copie de plusieurs fichiers

Vous pouvez copier plusieurs fichiers en les listant avant la destination.

Exemple 6 : Copie de plusieurs fichiers

cp file1.txt file2.txt file3.txt /home/user/backup/

Cette commande copie file1.txt, file2.txt et file3.txt vers le répertoire /home/user/backup/.

Sortie : Pas de sortie à moins que -v soit utilisé.

Utilisation des jokers

Les jokers peuvent être utilisés pour copier un groupe de fichiers qui correspondent à un modèle.

Exemple 7 : Utilisation des jokers

cp *.txt /home/user/backup/

Cette commande copie tous les fichiers .txt dans le répertoire courant vers le répertoire /home/user/backup/.

Sortie : Pas de sortie à moins que -v soit utilisé.

Ce qu'il faut surveiller

  • Écrasement de fichiers : Soyez prudent lors de la copie de fichiers pour éviter d'écraser des données importantes. Utilisez -i ou -n pour éviter les écrasements accidentels.
  • Permissions : Assurez-vous d'avoir les permissions nécessaires pour lire les fichiers source et écrire dans la destination.
  • Liens symboliques : Par défaut, cp copie les cibles des liens symboliques, pas les liens eux-mêmes. Utilisez -d pour copier les liens.
  • Préservation des attributs : Lors de l'utilisation de -a ou -p, assurez-vous d'avoir les permissions nécessaires pour définir les attributs préservés sur les fichiers de destination.

N'oubliez pas de toujours vérifier vos commandes pour éviter la perte de données due à des écrasements accidentels. Pratiquez avec différents scénarios pour devenir compétent avec cette commande polyvalente.