Crie um diretório de arquivos, cada um com um determinado tamanho de arquivo

Crie um diretório de arquivos, cada um com um determinado tamanho de arquivo

Gostaria de criar 100 arquivos, cada um com tamanho de 10 MB. Existe um comando unix simples que pode criar um diretório com esses 100 arquivos?

Responder1

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)

Responder2

Para complementar a resposta de Ochi, esta é uma maneira de criar 100 arquivos de 10 MB sem usar 1 GB de espaço em disco e rodando na velocidade da luz:

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

(Verarquivos esparsospara mais detalhes.)

Ou de outra forma (mas aqui, se você editar um dos arquivos, você edita todos):

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

(Verlinks físicospara mais detalhes.)

informação relacionada