特定のファイルの N 個のコピーを素早く作成する方法は何ですか?

特定のファイルの N 個のコピーを素早く作成する方法は何ですか?

たとえば、Nのコピーを作成し、 、、などa.txtの番号を付けたいとします。a1.txta2.txta3.txt

どうすれば簡潔にそのようなことを行えるでしょうか?

答え1

cpそれ自体は一度に 1 つのコピー (1 つのファイル) しか作成できませんが、簡単なループを使用すればそれほど難しくはありません。

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

答え2

bash 変数に N 値があると仮定します。

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

または、Kevin の回答に示されているループを使用します。

答え3

を使用するソリューションは、コピーを作成するためにcp同じファイルを何度も読み取る必要がないため、やや非効率的です。代わりに以下を使用できます。NNtee

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

関連情報