Recherche de site Web

Comment copier un fichier dans plusieurs répertoires sous Linux


Lors de l'apprentissage de Linux, il est toujours normal pour les débutants de continuer à taper plusieurs commandes pour accomplir une tâche simple. Cela est compréhensible, surtout lorsqu'on commence tout juste à s'habituer à utiliser le terminal.

Cependant, alors que vous avez hâte de devenir un utilisateur expérimenté de Linux, apprendre ce que j'appellerais des « commandes de raccourci » peut réduire considérablement les tendances à perdre du temps.

Dans cet article, nous expliquerons un moyen simple, en utilisant une seule commande pour copier un fichier dans plusieurs répertoires sous Linux.

Sous Linux, la commande cp permet de copier des fichiers d'un répertoire à un autre, la syntaxe la plus simple pour l'utiliser est la suivante :

cp [options….] source(s) destination

Alternativement, vous pouvez également utiliser la commande advanced-copy, qui affiche une barre de progression lors de la copie de fichiers/dossiers volumineux sous Linux.

Considérez les commandes ci-dessous. Normalement, vous taperiez deux commandes différentes pour copier le même fichier dans deux répertoires distincts, comme suit :

cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/test
cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/tmp

En supposant que vous souhaitiez copier un fichier particulier dans cinq répertoires ou plus, cela signifie que vous devrez taper cinq commandes cp ou plus ?

Pour résoudre ce problème, vous pouvez utiliser la commande echo, une commande pipe, xargs ainsi que la commande cp sous la forme ci-dessous :

echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

Dans le formulaire ci-dessus, les chemins d'accès aux répertoires (dir1,dir2,dir3…..dirN) sont repris et redirigés comme entrée de la commande xargs où :

  1. -n 1 – indique à xargs d'utiliser au plus un argument par ligne de commande et de l'envoyer à la commande cp.
  2. cp – utilisé pour copier un fichier.
  3. -v – active le mode détaillé pour afficher les détails de l'opération de copie.

Essayez de lire les pages de manuel des commandes cp, echo et xargs pour trouver des informations d'utilisation utiles et avancées :

man cp
man echo
man xargs

C'est tout, vous pouvez nous envoyer des questions sur le sujet ou des commentaires via le formulaire de commentaires ci-dessous. Vous souhaiterez peut-être également en savoir plus sur la commande progress qui permet de suivre la progression de (cp, mv, dd, tar, etc.) commandes actuellement exécutées sous Linux.