La copie d'un fichier dans un système d'exploitation Linux est simple, que vous utilisiez la ligne de commande ou la méthode graphique. Cependant, certains utilisateurs préfèrent la ligne de commande pour effectuer presque toutes les tâches. La ligne de commande offre non seulement un moyen simple mais plus rapide d'effectuer une tâche. Cp est la commande sous Linux utilisée pour copier un fichier d'un emplacement à un autre. Mais que se passe-t-il si nous devons copier un fichier à plusieurs endroits. Il existe un moyen de montrer comment y parvenir sous Linux.
Nous avons exécuté les commandes et la procédure mentionnées dans cet article sur un système d'exploitation Debian 10, mais elles fonctionneront également sur toute autre distribution Linux.
Voyons d'abord comment nous pouvons utiliser la commande cp pour copier les fichiers d'un emplacement à un autre. La syntaxe générale pour copier les fichiers à l'aide de la commande cp est :
$ cp ~[/location/sourcefile] ~[/destinationfolder]
Un exemple de ceci serait de copier le testfile1 du répertoire Documents vers le répertoire Downloads. Pour cela, j'ai exécuté la commande suivante dans le terminal :
$ cp ~/Documents/testfile1 ~/Downloads/
Maintenant, lorsque nous devons copier le fichier à plusieurs endroits, nous devons exécuter les commandes plusieurs fois. Par exemple, dans l'exemple suivant, nous copions le testfile1 de Documents vers deux emplacements différents, à savoir Téléchargements et Bureau. Pour cela, nous devons exécuter les commandes cp deux fois dans Terminal :
$ cp ~/Documents/testfile1 ~/Downloads/ $ cp ~/Documents/testfile1 ~/Desktop/
Copier un fichier à plusieurs emplacements à l'aide de la commande echo
Copier un fichier vers deux emplacements à l'aide de la commande cp est toujours acceptable, mais supposons que nous devions copier le fichier vers quatre, cinq emplacements ou plus. dans ce cas, nous avons une autre solution qui utilise la commande echo. La syntaxe de la commande serait :
$ echo [destination1] [destination2] [destiantion3]..... | xargs -n 1 cp [/location/sourcefile]
La commande echo est généralement utilisée dans les scripts shell pour afficher un message ou une sortie à l'écran. Mais ici, dans cet exemple, nous l'utiliserons pour alimenter la sortie de la commande xargs via le | symbole. Le xargs recevra trois entrées de la commande echo et effectuera les opérations cp trois fois, en copiant le fichier de test à 3 emplacements différents. le drapeau n dans la commande ci-dessus indiquera à la commande cp de prendre un argument à la fois.
Notez que cette commande écrasera un fichier déjà existant du même nom dans le répertoire de destination. Par conséquent, il est préférable de faire déjà une sauvegarde du fichier important.
Dans l'exemple suivant, nous utilisons cette commande pour copier le testfile1 du répertoire Documents vers trois répertoires différents qui sont Desktop, Downloads et le répertoire Music. Pour cela, nous avons lancé la commande suivante :
$ $ echo [~/Desktop] [~/Downloads] [~/Music] | xargs -n 1 cp [/location/sourcefile]
C'est tout ce qu'il y a à faire ! Nous avons maintenant appris à copier un fichier avec une seule commande dans plusieurs répertoires. Vous n'avez donc plus besoin d'écrire plusieurs commandes pour effectuer la tâche la plus simple de copier un fichier vers plusieurs emplacements.