GNU/Linux >> Tutoriels Linux >  >> Linux

16 exemples de commandes 'cp' utiles pour les débutants Linux

En tant qu'utilisateur Linux, la copie de fichiers et de répertoires est l'une des opérations quotidiennes les plus courantes. La commande task.cp est utilisée pour copier les fichiers et les répertoires d'un emplacement local à un autre à l'aide de la ligne de commande. La commande cp est disponible dans presque tous les systèmes d'exploitation de type Unix et Linux

Dans cet article, nous allons démontrer 16 exemples de commandes cp utiles spécialement pour les débutants Linux. Voici la syntaxe de base de la commande cp,

Copier un fichier dans un autre fichier

# cp {options} fichier_source fichier_cible

Copier le(s) fichier(s) dans un autre répertoire ou dossier

# cp {options} source_file   target_directory 

Copier le répertoire dans le répertoire

# cp {options} répertoire_source répertoire_cible

Passons aux exemples pratiques de la commande cp,

Exemple :1) Copier le fichier dans le répertoire cible

Supposons que nous voulions copier le fichier /etc/passwd dans le répertoire /mnt/backup à des fins de sauvegarde, alors exécutez la commande cp ci-dessous,

[email protected]:~# cp /etc/passwd /mnt/backup/
[email protected]:~#

Utilisez la commande ci-dessous pour vérifier si elle a été copiée ou non.

[email protected]:~# ls -l /mnt/backup/
total 4
-rw-r--r-- 1 root root 2410 Feb  3 17:10 passwd
[email protected]:~#

Exemple :2 Copie de plusieurs fichiers en même temps

Supposons que nous voulions copier plusieurs (/etc/passwd, /etc/group &/etc/shadow) en même temps dans le répertoire cible (/mnt/backup)

[email protected]:~# cp /etc/passwd /etc/group /etc/shadow /mnt/backup/
[email protected]:~#

Exemple :3) Copie interactive des fichiers (-i)

Si vous souhaitez copier les fichiers d'un endroit à un autre de manière interactive, utilisez l'option "-i" dans la commande cp, l'option interactive ne fonctionne que si le répertoire de destination a déjà le même fichier, l'exemple est montré ci-dessous,

[email protected]:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'? y
[email protected]:~#

Dans la commande ci-dessus, il faut taper manuellement "y" pour permettre l'opération de copie

Exemple :4) Sortie détaillée lors de la commande de copie (-v)

Si vous voulez la sortie détaillée de la commande cp, utilisez l'option "-v", l'exemple est montré ci-dessous

[email protected]:~# cp -v /etc/fstab  /mnt/backup/
'/etc/fstab' -> '/mnt/backup/fstab'
[email protected]:~#

Si vous souhaitez utiliser à la fois le mode interactif et le mode verbeux, utilisez les options "-iv"

[email protected]echi:~# cp -iv /etc/fstab  /mnt/backup/
cp: overwrite '/mnt/backup/fstab'? y
'/etc/fstab' -> '/mnt/backup/fstab'
[email protected]:~#

Exemple :5) Copie d'un répertoire ou d'un dossier (-r ou -R)

Pour copier un répertoire d'un endroit à un autre, utilisez -r ou -R option dans la commande cp. Supposons que nous voulions copier le répertoire personnel de l'utilisateur linuxtechi dans "/mn/backup",

[email protected]:~# cp -r /home/linuxtechi /mnt/backup/
[email protected]:~#

Dans la commande ci-dessus, l'option -r copiera les fichiers et le répertoire de manière récursive.

Vérifiez maintenant le contenu du répertoire linuxtechi sur l'emplacement cible,

[email protected]:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb  3 17:41 data
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_1.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_2.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_3.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_4.txt
-rw-r--r-- 1 root root    7 Feb  3 17:41 file_5txt
-rw-r--r-- 1 root root    0 Feb  3 17:41 file_5.txt
[email protected]:~#

Exemple :6) Archiver les fichiers et le répertoire pendant la copie (-a)

Lors de la copie d'un répertoire à l'aide de la commande cp, nous utilisons généralement l'option -r ou -R, mais à la place de l'option -r, nous pouvons utiliser '-a' qui archivera les fichiers et le répertoire pendant la copie, l'exemple est montré ci-dessous,

[email protected]:~# cp -a /home/linuxtechi /mnt/backup/
[email protected]:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb  3 17:41 data
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_1.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_2.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_3.txt
-rw-r--r-- 1 root root    7 Feb  3 17:39 file_4.txt
-rw-r--r-- 1 root root    7 Feb  3 17:40 file_5txt
-rw-r--r-- 1 root root    0 Feb  3 17:39 file_5.txt
[email protected]:~#

Exemple :7) Copier uniquement lorsque le fichier source est plus récent que le fichier cible (-u)

Il peut y avoir des scénarios dans lesquels vous souhaitez copier les fichiers uniquement si les fichiers source sont plus récents que ceux de destination. Ceci peut être facilement réalisé en utilisant "-u ” dans la commande cp.

Dans l'exemple :6 nous avons copié le répertoire d'accueil linuxtechi dans le dossier /mnt/backup, dans le dossier d'accueil linuxtechi, nous avons 5 fichiers txt, éditons-en quelques-uns, puis copions tous les fichiers txt à l'aide de "cp -u".

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# echo "LinuxRocks" >> file_1.txt
[email protected]:/home/linuxtechi# echo "LinuxRocks" >> file_4.txt
[email protected]:/home/linuxtechi# cp -v -u  file_*.txt /mnt/backup/linuxtechi/
'file_1.txt' -> '/mnt/backup/linuxtechi/file_1.txt'
'file_4.txt' -> '/mnt/backup/linuxtechi/file_4.txt'
[email protected]:/home/linuxtechi#

Exemple :8) Ne pas écraser le fichier existant lors de la copie (-n)

Il existe certains scénarios dans lesquels vous ne souhaitez pas écraser les fichiers de destination existants lors de la copie. Cela peut être accompli en utilisant l'option '-n' dans la commande 'cp'

[email protected]:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'?

Comme vous pouvez le voir dans la commande ci-dessus, il nous invite à écraser le fichier existant, si vous utilisez -n, il ne demandera pas l'écrasement et n'écrasera pas non plus le fichier existant.

[email protected]:~# cp -n /etc/passwd /mnt/backup/
[email protected]:~#

Exemple :9) Création de liens symboliques à l'aide de la commande cp (-s)

Supposons que nous voulions créer un lien symbolique d'un fichier au lieu de le copier à l'aide de la commande cp, pour de tels scénarios, utilisez l'option '-s' dans la commande cp, l'exemple est illustré ci-dessous

[email protected]:~# cp -s /home/linuxtechi/file_1.txt /mnt/backup/
[email protected]:~# cd /mnt/backup/
[email protected]:/mnt/backup# ls -l file_1.txt
lrwxrwxrwx 1 root root 27 Feb  5 18:37 file_1.txt -> /home/linuxtechi/file_1.txt
[email protected]:/mnt/backup#

Exemple :10) Création d'un lien physique à l'aide de la commande cp (-l)

Si vous souhaitez créer un lien physique d'un fichier au lieu de le copier à l'aide de la commande cp, utilisez l'option '-l'. exemple est illustré ci-dessous,

[email protected]:~# cp -l /home/linuxtechi/devops.txt /mnt/backup/
[email protected]:~#

Comme nous le savons dans le lien dur, la source et le fichier lié auront les mêmes numéros d'inode, vérifions cela en utilisant les commandes suivantes,

[email protected]:~# ls -li /mnt/backup/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb  5 20:02 /mnt/backup/devops.txt
[email protected]:~# ls -li /home/linuxtechi/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb  5 20:02 /home/linuxtechi/devops.txt
[email protected]:

Exemple :11) Copier des attributs de la source vers la destination (–attributes-only)

Si vous souhaitez copier uniquement les attributs de la source à la destination à l'aide de la commande cp, utilisez l'option "–attributes-only

# cp --attributes-only /home/linuxtechi/distributions.txt  /mnt/backup/
# ls -l /home/linuxtechi/distributions.txt
-rw-r--r-- 1 root root 41 Feb  5 19:31 /home/linuxtechi/distributions.txt
# ls -l /mnt/backup/distributions.txt
-rw-r--r-- 1 root root 0 Feb  5 19:34 /mnt/backup/distributions.txt
#

Dans la commande ci-dessus, nous avons copié le fichier distribution.txt du répertoire d'accueil linuxtechi vers le dossier /mnt/backup, si vous l'avez remarqué, seuls les attributs sont copiés et le contenu est ignoré. La taille de distribution.txt sous le dossier /mn/backup est de zéro octet.

Exemple :12) Création d'une sauvegarde du fichier de destination existant lors de la copie (–sauvegarde)

Le comportement par défaut de la commande cp est d'écraser le fichier sur la destination si le même fichier existe, si vous voulez faire une sauvegarde du fichier de destination existant pendant l'opération de copie, utilisez alors '–backup ', l'exemple est montré ci-dessous,

[email protected]:~# cp --backup=simple -v /home/linuxtechi/distributions.txt /mnt/backup/distributions.txt
'/home/linuxtechi/distributions.txt' -> '/mnt/backup/distributions.txt' (backup: '/mnt/backup/distributions.txt~')
[email protected]:~#

Si vous avez remarqué, la sauvegarde a été créée et le symbole tilde ajouté à la fin du fichier. l'option de sauvegarde accepte les paramètres suivants

  • aucun, désactivé – ne faites jamais de sauvegardes
  • numéroté, t – faire des sauvegardes numérotées
  • existant, néant – numéroté si des sauvegardes numérotées existent, simple sinon
  • simple, jamais – faites toujours des sauvegardes simples

Exemple :13) Préserver le mode, la propriété et les horodatages lors de la copie (-p)

Si vous souhaitez conserver les attributs de fichier tels que le mode, la propriété et les horodatages lors de la copie, utilisez l'option -p dans la commande cp, l'exemple est illustré ci-dessous,

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# cp -p devops.txt /mnt/backup/
[email protected]:/home/linuxtechi# ls -l devops.txt
-rw-r--r-- 1 root root 37 Feb  5 20:02 devops.txt
[email protected]:/home/linuxtechi# ls -l /mnt/backup/devops.txt
-rw-r--r-- 1 root root 37 Feb  5 20:02 /mnt/backup/devops.txt
[email protected]:/home/linuxtechi#

Exemple :14) Ne suivez pas les liens symboliques dans Source lors de la copie (-P)

Si vous ne souhaitez pas suivre les liens symboliques de la source lors de la copie, utilisez l'option -P dans la commande cp, l'exemple est illustré ci-dessous

[email protected]:~# cd /home/linuxtechi/
[email protected]:/home/linuxtechi# ls -l /opt/nix-release.txt
lrwxrwxrwx 1 root root 14 Feb  9 12:28 /opt/nix-release.txt -> os-release.txt
[email protected]:/home/linuxtechi#
[email protected]:/home/linuxtechi# cp -P os-release.txt /mnt/backup/
[email protected]:/home/linuxtechi# ls -l /mnt/backup/os-release.txt
-rw-r--r-- 1 root root 35 Feb  9 12:29 /mnt/backup/os-release.txt
[email protected]:/home/linuxtechi#

Remarque : Le comportement par défaut de la commande cp est de suivre les liens symboliques dans la source lors de la copie.

Exemple :15) Copiez les fichiers et le répertoire avec force en utilisant l'option -f

Il peut y avoir des scénarios où le fichier de destination existant ne peut pas être ouvert et supprimé. Et si vous avez un fichier sain qui peut être copié à la place du fichier de destination existant, utilisez la commande cp avec l'option -f

[email protected]:/home/linuxtechi# cp -f distributions.txt  /mnt/backup/
[email protected]:/home/linuxtechi#

Exemple :16) Copier des fichiers épars à l'aide de l'option sparse dans la commande cp

Sparse est un fichier normal qui contient une longue séquence de zéro octet qui ne consomme aucun bloc de disque physique. L'un des avantages du fichier fragmenté est qu'il ne consomme pas beaucoup d'espace disque et que l'opération de lecture sur ce fichier serait assez rapide.

Supposons que nous ayons une image de nuage clairsemée nommée "ubuntu-cloud.img"

[email protected]:/home/linuxtechi# du -sh ubuntu-cloud.img
12M     ubuntu-cloud.img
[email protected]:/home/linuxtechi# cp --sparse=always ubuntu-cloud.img /mnt/backup/
[email protected]:/home/linuxtechi# du -sh /mnt/backup/ubuntu-cloud.img
0       /mnt/backup/ubuntu-cloud.img
[email protected]:/home/linuxtechi#

Différentes options peuvent être utilisées lors de l'utilisation du paramètre sparse dans la commande cp,

  • sparse=auto
  • parsemé-toujours
  • sparse=jamais

C'est tout de cet article, j'espère qu'il vous aidera à comprendre plus efficacement la commande cp. S'il vous plaît partagez vos commentaires et commentaires


Linux
  1. 10 exemples de commandes 'rm' pour les débutants Linux

  2. 10 exemples de commandes ncat (nc) utiles pour les systèmes Linux

  3. 10 exemples de commandes Linux Cat pour les débutants

  4. Tutoriel de commande cd Linux pour les débutants (8 exemples)

  5. Commande Linux killall pour les débutants (8 exemples)

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)

Commande de localisation Linux pour les débutants (8 exemples)

16 exemples pratiques de commande Linux LS pour les débutants

Explication de la commande Linux mv pour les débutants (8 exemples)