Какие существуют быстрые способы создания N копий определенного файла?

Какие существуют быстрые способы создания N копий определенного файла?

Скажем, если бы я хотел сделать Nкопии a.txtи хотел бы, чтобы они были пронумерованы a1.txt, a2.txt, a3.txt, и т. д.

Как бы я это сделал лаконично?

решение1

cpСам по себе он может создавать только одну копию (одного файла) за раз, но это не так уж и сложно с помощью быстрого цикла:

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

решение2

Предположим, что у вас есть значение N в переменной bash:

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

или

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

или с помощью цикла, показанного в ответе Кевина.

решение3

Решения с использованием cpнесколько неэффективны, поскольку вам не нужно читать те же самые Nвремена файла, чтобы сделать Nкопии. Вместо этого можно использовать tee:

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

решение4

Если вы хотите чего-то более необычного, вы можете, например, сделать следующее: for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done.

Связанный контент