リモートへのファイルコピーを検証していて、1 つのファイルの容量は軽くてもいいから大量のファイルのコピーを試したいケースに遭遇しました。
そんな時、シェルを使うと楽で、少し調整すればコマンドラインからワンライナーで実行もできます。
今回は、そのワンライナーコマンドを紹介します。
容量の大きなファイルの場合
容量の大きいファイルを大量に作成したい場合は、何か 1 つ元となるファイルを用意しておいて、それを別名でコピーしていくっていう方法が思い浮かびます。
さすがにチマチマとファイルを作るよりもベースとなるファイルを活かして、数を増やしていくのが早いです。
容量の軽いファイルの場合
容量の軽いファイルの場合は、ちょっとしたテキストファイルを量産してしまうのが早そうです。
10000 個のファイルを別名で作るのは以下の通り。
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/sh n=1 e=10000 while [ ${n} -le ${e} ] ; do echo "ABCDEFGHIJKLMNOPQRSTUVWXYZ" > ${n}.txt n=`expr $n + 1` done exit 0; |
ワンライナーは難しくない
即席でちょっとしたことをしたい時には、ワンライナーで書けるようにしておきたいですね。
ワンライナーで書くと以下の通り。
1 | n=1; while [ ${n} -le 5 ] ; do echo "ABCDEFGHIJKLMNOPQRSTUVWXYZ" > ${n}.txt; n=`expr $n + 1`; done |
複雑なワンライナーはミスの元なので好きではありませんが、シンプルなものであればワンライナーが好ましい場合もあります。