特定のファイルサイズを持つファイルのディレクトリを作成します

特定のファイルサイズを持つファイルのディレクトリを作成します

ファイルサイズがそれぞれ 10 MB のファイルを 100 個作成したいと思います。これらの 100 個のファイルを含むディレクトリを作成できる簡単な UNIX コマンドはありますか?

答え1

for x in {1..100}; do dd if=/dev/zero of=file$x bs=10485760 count=1; done

if=FILE (read from FILE instead of stdin)
of=FILE (write to FILE instead of stdout)
bs=BYTES (force ibs=BYTES and obs=BYTES)
ibs=BYTES (read BYTES bytes at a time)
obs=BYTES (write BYTES bytes at a time)
count=1 (copy only 1 input block)

答え2

Ochi さんの回答を補足すると、1 GB のディスク容量を使用せずに 10 MB のファイルを 100 個作成し、超高速で実行する方法は次のとおりです。

size=$((10*1024*1024))
nb_files=100
for n in $(seq -f "%03.0f" 1 $nb_files); do
  dd if=/dev/zero of=file$n bs=1 count=1 seek=$((size-1))
done

(見るスパースファイル詳細については。)

または別の方法 (ただし、ここでは、いずれかのファイルを編集すると、すべてのファイルを編集することになります):

size=$((10*1024*1024))
n=$(seq -f "%03.0f" 1 1)
dd if=/dev/zero of=file$n bs=1 count=1 seek=$((size-1))
nb_files=100
for m in $(seq -f "%03.0f" 2 $nb_files); do
  ln file$n file$m
done

(見るハードリンク詳細については。)

関連情報