GNU/Linux >> Tutoriels Linux >  >> Linux

Commande cp sous Linux :7 exemples pratiques

L'une des commandes que vous devez connaître sous Linux est cp. On l'appelle souvent la commande de copie sous Linux et c'est en fait l'abréviation de copie et elle fait exactement ce que son nom l'indique :elle copie.

cp est utilisé pour copier des fichiers d'un emplacement à un autre. cp peut également être utilisé pour copier des répertoires entiers dans un nouvel emplacement. Vous pouvez également l'utiliser pour copier plusieurs fichiers et répertoires.

7 exemples d'utilisation de la commande cp sous Linux

Voyons comment vous pouvez utiliser la commande cp à diverses fins :

1. Comment copier un fichier

L'exemple le plus simple serait de copier un fichier. Pour ce faire, il vous suffit de spécifier le fichier source et le répertoire ou fichier de destination.

cp source_file target_directory/target_file

Dans l'exemple ci-dessus, si le target_fille n'existe pas dans le target_directory, il créera target_file.

Cependant, si le new_file existe déjà, il l'écrasera sans demander. Ce qui signifie que le contenu du fichier cible existant sera modifié avec le contenu du fichier source.

Je vous montrerai comment gérer l'écrasement des fichiers plus tard dans ce didacticiel.

Gardez à l'esprit :Par défaut, les commandes cp écrasent si le fichier cible existe déjà. Ce comportement peut être modifié avec l'option -n ou -i, expliquée plus tard.

2. Comment copier plusieurs fichiers

Si vous souhaitez copier plusieurs fichiers à la fois vers un nouvel emplacement, vous pouvez le faire de la manière suivante :

cp file1 file2 file3 fileN target_directory

Cela copiera tous les fichiers spécifiés dans le répertoire cible. Si le répertoire cible contient des fichiers correspondant au nom du ou des fichiers source, il sera écrasé.

3. Plusieurs façons de gérer l'écrasement lors de la copie de fichiers

Vous ne voudrez probablement pas toujours que vos fichiers cibles existants soient écrasés et c'est tout à fait logique.

Pour éviter d'écraser les fichiers existants, vous pouvez utiliser l'option -n. De cette façon, cp n'écrasera pas les fichiers existants.

cp -n source_file target_directory

Mais peut-être souhaitez-vous écraser certains fichiers. Vous pouvez utiliser l'option interactive -i et il vous demandera si vous souhaitez écraser le(s) fichier(s) existant(s).

cp -i source_file target_directory
cp: overwrite 'target_directory/source_file'?

Vous pouvez entrer y pour écraser le fichier existant ou n pour ne pas l'écraser.

Il existe également une option pour effectuer des sauvegardes automatiques. Si vous utilisez l'option -b avec la commande cp, elle écrasera les fichiers existants mais avant cela, elle créera une sauvegarde des fichiers écrasés.

cp -b file.txt target_dir/file.txt
ls target_dir
file.txt file.txt~

La sauvegarde du fichier se termine par ~.

Vous pouvez également utiliser l'option de mise à jour -u lorsqu'il s'agit d'écraser. Avec l'option -u, les fichiers source ne seront copiés au nouvel emplacement que si le fichier source est plus récent que le fichier existant ou s'il n'existe pas dans le répertoire cible.

Pour résumer :

  • -i :Confirmer avant d'écraser
  • -n :pas d'écrasement
  • -b :Écrasement avec sauvegarde
  • -u :Écraser si le fichier cible est ancien ou n'existe pas

4. Comment copier un répertoire sous Linux

Vous pouvez également utiliser la commande cp pour copier un répertoire sous Linux, y compris tous ses fichiers et sous-répertoires. Vous devez utiliser l'option -r ici qui signifie récursif.

cp -r source_dir target_dir

Cela copiera l'intégralité de source_dir dans target_dir. Désormais, source_dir sera un sous-répertoire de target_dir.

ls target_dir
source_dir

5. Comment copier uniquement le contenu d'un répertoire, pas le répertoire lui-même

Dans l'exemple précédent, vous avez copié l'intégralité du répertoire dans un nouvel emplacement.

Mais si vous souhaitez simplement copier le contenu du répertoire source dans le répertoire cible, vous devez ajouter /. à la fin du répertoire source. Cela indiquera que vous souhaitez uniquement copier le contenu du répertoire source.

Voyons cela avec un exemple :

ls source_dir
source_file_1 source_file2

Copiez maintenant le contenu du répertoire source :

cp -r source_dir/. target_dir

Si vous vérifiez maintenant le contenu du répertoire cible, vous verrez que seul le contenu du répertoire source a été copié.

ls target_dir
source_file_1 source_file2

6. Comment copier plusieurs répertoires

Vous pouvez également copier plusieurs répertoires à la fois avec la commande cp sous Linux.

Utilisez-le simplement de la même manière que vous l'avez fait pour un seul répertoire.

cp -r source_dir1 source_dir2 source_dir3 target_dir

C'est toujours le dernier argument de la commande qui est pris comme répertoire cible.

Si vous souhaitez copier uniquement le contenu de plusieurs répertoires à la fois, vous pouvez également le faire :

cp -r source_dir1/. source_dir2/. source_dir3/. target_dir

En fait, vous pouvez mélanger les répertoires, leur contenu et les fichiers.

cp -r source_dir1 source_dir2/. source_file target_dir
Astuce :Vous pouvez utiliser le mode verbeux avec l'option -v pour voir quels fichiers sont copiés.

7. Comment conserver les attributs lors de la copie

Lorsque vous copiez un fichier vers un nouvel emplacement, ses attributs tels que les autorisations de fichier et les horodatages de fichier sont modifiés.

Si vous souhaitez conserver les attributs du fichier d'origine, vous pouvez copier les fichiers avec l'option -p.

Voyons cela avec un exemple.

ls -l /etc/services 

-rw-r--r-- 1 root root 19183 Dec 26  2016 /etc/services

Si j'essaie de copier ce fichier normalement, ses attributs seront modifiés :

cp /etc/services .
ls -l services 
-rwxrwxrwx 1 abhishek abhishek 19183 Nov 25 20:45 service

Mais si j'utilise l'option p, le fichier copié conservera le mode, la propriété et l'horodatage.

cp -p /etc/services .
ls -l services 
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26 2016 services

Comme vous pouvez le voir, vous avez conservé le mode d'accès et l'horodatage du fichier source avec l'option -p.

Mais attendez! N'était-il pas censé préserver également la propriété des fichiers source ? Mais ici, le propriétaire (racine) du fichier source a été changé en abhishek.

En effet, seul root a la permission de changer la propriété d'un fichier appartenant à root. Si vous utilisez l'option -p avec un fichier qui n'appartient pas à root, il conservera la propriété. Ou, vous pouvez exécuter la commande avec sudo pour conserver la propriété d'un fichier appartenant à root.

Vous pouvez également spécifier les attributs que vous souhaitez conserver. Mais alors vous devrez utiliser l'option –preserve.

cp --preserve=timestamp /etc/services .
ls -l services 
-rw-r--r-- 1 abhishek abhishek 19183 Dec 26  2016 services

Comme vous pouvez le voir dans la sortie ci-dessus, il n'a conservé que l'horodatage du fichier source.

Vous pouvez explorer davantage la commande cp en parcourant sa page de manuel. Les exemples présentés ici sont les plus courants que vous utiliserez en tant qu'utilisateur Linux, administrateur système ou développeur de logiciels.

Si vous avez aimé ce tutoriel, partagez cet article sur les réseaux sociaux et divers forums.


Linux
  1. 5 exemples pratiques de la commande dd sous Linux

  2. Commande Linux cp

  3. 10 exemples pratiques de commandes Linux nm

  4. 7 Exemples de commandes Linux df

  5. Exemples de commandes sa sous Linux

12 exemples pratiques d'In Command sous Linux

15 exemples pratiques de commande Rsync sous Linux

5 exemples pratiques de la commande Tail sous Linux

commande echo sous Linux :7 exemples pratiques

Commande Ping pratique dans des exemples Linux

Exemples de commandes id sous Linux