Como posso criar rapidamente um arquivo grande?

25

O que é uma maneira rápida e fácil de criar um arquivo com tamanho de 2 GB?

    
por ændrük 10.06.2011 / 06:01

3 respostas

34

O método zero-fill (modificado aqui para evitar possíveis gargalos de memória.) possíveis gargalos de memória ) levou 17 segundos para criar um arquivo de 10 GB em um SSD e fez com que a interface gráfica do Ubuntu parasse de responder.

$ time sh -c 'dd if=/dev/zero iflag=count_bytes count=10G bs=1M of=large; sync'
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 17.2003 s, 624 MB/s

real    0m17.642s
user    0m0.008s
sys     0m9.404s
$ du -B 1 --apparent-size large
10737418240     large
$ du -B 1 large
10737422336     large
O

fallocate cria arquivos grandes instantaneamente, manipulando diretamente o espaço em disco alocado do arquivo :

$ time sh -c 'fallocate -l 10G large; sync'

real    0m0.038s
user    0m0.000s
sys     0m0.016s
$ du -B 1 --apparent-size large
10737418240     large
$ du -B 1 large
10737422336     large
O

truncado também funciona instantaneamente e cria arquivos esparsos que não ocupam espaço em disco real até que os dados sejam gravados posteriormente:

$ time sh -c 'truncate -s 10G large; sync'

real    0m0.014s
user    0m0.000s
sys     0m0.004s
$ du -B 1 --apparent-size large
10737418240     large
$ du -B 1 large
0       large
    
por ændrük 13.06.2011 / 18:38
18

Uma maneira fácil seria usar o comando dd para gravar um arquivo cheio de zeros.

dd if=/dev/zero of=outputFile bs=2G count=1
  • if = arquivo de entrada
  • de = arquivo de saída
  • bs = bytes

Use G no argumento size se você quiser um computador (1024 * 1024 * 1024) gigabytes, ou GB se você quiser um humano (1000 * 1000 * 1000) gigabytes.

    
por MikeVB 10.06.2011 / 06:23
1

ftp://ftp.fsf.hu/testfiles/maketestfiles.sh

ou Buscar é o tamanho do arquivo que você quer em bytes - 1.

dd if=/dev/zero of=filename.big bs=1 count=1 seek=1048575 # 1 MByte

dd if=/dev/zero of=filename.big bs=1 count=1 seek=10485759 # 10 MByte

dd if=/dev/zero of=filename.big bs=1 count=1 seek=104857599 # 100 MByte

dd if=/dev/zero of=filename.big bs=1 count=1 seek=1073741823 # 1024 MByte

dd if=/dev/zero of=filename.big bs=1 count=1 seek=42949672959 # 40960 MByte
    
por LanceBaynes 16.06.2011 / 12:17