
Digamos, si quisiera hacer N
copias de y quisiera que a.txt
estuvieran numeradas a1.txt
, a2.txt
etc.a3.txt
¿Cómo haría algo así de manera sucinta?
Respuesta1
cp
por sí solo puede hacer una copia (de un solo archivo) a la vez, pero no es demasiado difícil con un bucle rápido:
for i in {1..10}; do cp a.txt a$i.txt; done
Respuesta2
Suponiendo que tiene su valor N en una variable bash:
for i in `seq 1 $N`; do cp a.txt a$i.txt; done
o
for ((i=1;i<=$N;i++)); do cp a.txt a$i.txt; done
o con el bucle que se muestra en la respuesta de Kevin.
Respuesta3
Las soluciones que utilizan cp
son algo ineficientes, porque no es necesario leer el mismo archivo N
varias veces para hacer N
copias. Se puede utilizar tee
en su lugar:
cat a.txt | ( for i in `seq 1 $N`; do echo a"$i".txt; done | xargs tee )
Respuesta4
Si quieres algo más original, puedes, por ejemplo, hacer:
for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done
.