Quels sont les moyens rapides de faire N copys d'un file particulier?

Dis, si je voulais faire N copys de a.txt , et a.txt voulais qu'ils soient numérotés a1.txt , a2.txt , a3.txt , etc …

Comment ferais-je une telle chose succinctement?

cp lui-même ne peut faire qu'une copy (d'un seul file) à la fois, mais ce n'est pas trop difficile avec une boucle rapide:

 for i in {1..10}; do cp a.txt a$i.txt; done 

En supposant que vous avez votre valeur N dans une variable bash:

 for i in `seq 1 $N`; do cp a.txt a$i.txt; done 

ou

 for ((i=1;i<=$N;i++)); do cp a.txt a$i.txt; done 

ou avec la boucle montrée dans la réponse de Kevin.

Les solutions utilisant cp sont peu efficaces, car vous n'avez pas besoin de lire le même file N fois pour faire N copys. On peut utiliser tee place:

 cat a.txt | ( for i in `seq 1 $N`; do echo a"$i".txt; done | xargs tee ) 

Si vous voulez quelque chose de plus funky, vous pouvez par exemple faire: for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done .