45 votes

Commandes Linux pour copier un fichier vers plusieurs fichiers

Existe-t-il une commande/script en une ligne pour copier un fichier vers plusieurs fichiers sous Linux ?

cp file1 file2 file3

copie les deux premiers fichiers dans le troisième. Existe-t-il un moyen de copier le premier fichier dans les autres ?

0voto

Shakiba Moshiri Points 6556

Allez-y avec le le plus rapide opérations cp

seq 1 10 | xargs -P 0 -I xxx cp file file-xxx

il signifie

  • seq 1 10 compter de 1 à 10
  • | le tuyau xargs
  • -P 0 le faire en parallèle - autant que nécessaire
  • -I xxx nom de chaque entrée xargs reçoit
  • cp file file-xxx signifie copier le fichier vers le fichier-1, le fichier-2, etc.

et si les noms des fichiers sont différents, voici les autres solutions.
Premier avoir la liste des fichiers qui vont être créés, par ex.

one
two
three
four
five

Deuxièmement sauvegarder cette liste sur le disque et lire la liste avec xargs comme avant, mais sans utiliser seq .

xargs -P 0 -I xxx cp file xxx  < list

ce qui signifie 5 opérations de copie en parallèle :

cp file one  
cp file two  
cp file three  
cp file four  
cp file five  

et pour xargs voici les coulisses de l'événement ( 5 fourches )

 3833 pts/0    Ss     0:00 bash
15954 pts/0           0:00  \_ xargs -P 0 -I xxx cp file xxx < list
15955 pts/0           0:00      \_ cp file one
15956 pts/0           0:00      \_ cp file two
15957 pts/0           0:00      \_ cp file three
15958 pts/0           0:00      \_ cp file four
15959 pts/0           0:00      \_ cp file five

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X