Questão Criar diretório de arquivos, cada um com um determinado tamanho de arquivo


Eu gostaria de criar 100 arquivos cada um com um tamanho de arquivo de 10Mb. Existe um comando unix simples que pode criar um diretório com esses 100 arquivos?


4


origem


FYI isso é mais uma pergunta para serverFault.SE - New Alexandria


Respostas:


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)

8





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

(Vejo arquivos esparsos para mais detalhes.)

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

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

(Vejo links rígidos para mais detalhes.)


3