Copier un fichier est absolument une tâche très facile à faire dans tous les systèmes d’exploitation modernes, y compris Linux. Tout comme Windows et Mac, vous pouvez copier un fichier facilement à partir de la commande GUI en faisant un clic droit sur le fichier et en choisissant l’option de copie.
Cependant, que se passe-t-il si vous voulez copier un fichier dans plusieurs répertoires avec une seule commande. Vous ne pouvez le faire qu’en utilisant la ligne de commande.
Normalement, nous utiliserions la commande cp pour copier un fichier sous Linux. Mais, cette commande ne peut être utilisée que pour copier un fichier dans un répertoire spécifique. Si vous pensez à copier un fichier vers plus d’une destination, vous devez chercher une autre alternative.
Heureusement, Linux est livré avec tant de commandes. Lorsque nous explorons plus profondément sur une commande, nous pouvons a faire beaucoup de choses en l’utilisant. Dans ce cas, nous allons parler de « echo ».
Cette commande est fondamentalement utilisée pour écrire sur l’écran. Mais, nous pouvons également utiliser cette commande pour copier un fichier avec des options supplémentaires. Avant d’exécuter la commande, il est préférable de comprendre comment la commande fonctionne.
Vous trouverez ci-dessous la syntaxe de la commande que nous allons utiliser.
echo dir_1 dir_2 dir_3 | xargs -n 1 cp file1
Dans ce cas, nous voulons alimenter la sortie de la commande echo comme entrée à la commande xargs. Pour ce faire, nous utilisons le symbole pipe ( | ) qui alimente la sortie d’une commande en entrée d’une autre. La commande xargs exécutera la commande cp trois fois, en ajoutant à chaque fois à la fin de la commande cp le chemin d’accès au répertoire suivant qui lui a été transmis par la commande echo. Il y a trois arguments passés à xargs , mais l’option -n 1 de la commande xargs lui dit de n’ajouter qu’un seul de ces arguments à la fois à la commande cp à chaque fois qu’elle est exécutée.
C’est bon ?
Vous trouverez ci-dessous l’exemple de la commande.
echo dir_1 dir_2 dir_3 | xargs -n 1 cp copythisfile.txt