SSブログ

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は使う頻度が少ないかもしれませんが、知っておくと便利ですね。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。