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

4

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?

    
por turtle 05.06.2013 / 01:06

2 respostas

8
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)
    
por 05.06.2013 / 01:09
3

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

(Veja arquivos esparsos para mais detalhes.)

Ou de outra forma (mas aqui, se você editar um dos arquivos, edite-os 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

(Veja links físicos para mais detalhes.)

    
por 07.06.2013 / 11:20

Tags