So-net無料ブログ作成

Unix系OSの大量、大容量ファイルの作成方法(シェル・コマンド) [Ubuntu]

試験などにより、大量もしくは大容量のファイルを作成することがあります。
今回は、シェルまたはコマンドで作成する方法を紹介します。

1.大量ファイル作成シェル
#!/bin/sh
snum=100000000000000000
enum=100000000000005000
while [ ${snum} -lt ${enum} ] ; do
echo "#0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" > ${snum}.txt
snum=`expr ${snum} + 1`
done
exit 0;

上記の場合には、100000000000000000.txt~100000000000004999.txtの5,000ファイルを作成します。
5,000ファイルを作成するのに約1分程度の時間を要します。

2.大容量ファイル作成コマンド
dd if=/dev/zero of=dummy.dat bs=1M count=100

上記のコマンドで100MB(104,857,600)のファイルが数秒で作成できます。
whileを使ってシェルでも作成できます。
以下のシェルは64Byteのファイルを連結し、128Byte、さらに連結して256Byteのように倍々のサイズにするものです。したがって、作成したい希望のサイズの乖離がでる可能性があります。
#!/bin/sh
esize=104857600
echo "#0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" > dummy.txt
ssize=`ls -l dummy.txt | cut -f5 -d' '`
while [ ${ssize} -le ${esize} ] ; do
cat dummy.txt dummy.txt >> dummy.tmp
mv dummy.tmp dummy.txt
ssize=`ls -l dummy.txt | cut -f5 -d' '`
done
exit 0;

上記のTipsは使う頻度が少ないかもしれませんが、知っておくと便利ですね。