Quais são algumas maneiras rápidas de fazer N cópias de um determinado arquivo?

3

Digamos que, se eu quisesse fazer N cópias de a.txt , e quisesse que elas fossem numeradas em a1.txt , a2.txt , a3.txt , etc ...

Como eu faria uma coisa dessas de forma sucinta?

    
por InquilineKea 18.07.2012 / 03:24

4 respostas

7

cp em si só pode fazer uma cópia (de um único arquivo) por vez, mas não é muito difícil com um loop rápido:

for i in {1..10}; do cp a.txt a$i.txt; done
    
por 18.07.2012 / 03:35
3

Supondo que você tenha seu valor N em uma variável 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 com o loop mostrado na resposta de Kevin.

    
por 18.07.2012 / 03:33
2

As soluções que usam cp são um pouco ineficientes, porque você não precisa ler o mesmo arquivo N times para fazer N copies. Pode-se usar tee :

cat a.txt | ( for i in 'seq 1 $N'; do echo a"$i".txt; done | xargs tee )
    
por 24.05.2015 / 05:51
0

Se você quiser algo mais divertido, por exemplo, você pode: for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done .

    
por 23.01.2013 / 17:51

Tags