$ 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
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 consomem 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
dd ... bs=2G count=1lê 2 GB na memória (em uma read(2)chamada). Se você tem pressão de memória, provavelmente não é esse o caminho. Mais, blocos menores podem ser mais rápidos se isso significa menos paginação.
Claymarea #
19
Uma maneira fácil seria usar o ddcomando para escrever um arquivo cheio de zeros.
dd if=/dev/zero of=outputFile bs=2G count=1
if = arquivo de entrada
of = arquivo de saída
bs = bytes
Use G no argumento de tamanho se desejar gigabytes de computador (1024 * 1024 * 1024) ou GB se desejar gigabytes humanos (1000 * 1000 * 1000).
Vou apenas acrescentar que se você não quiser todos os zeros, você pode escolher if = / dev / random
Denwerko
Embora / dev / random leve mais tempo.
con-f-use
10
Usando / dev / random terá um terrível muito tempo. Use /dev/urandomnesse caso (é sem bloqueio, mas não é garantido que tenha o mesmo nível de aleatoriedade). Desenhar 2 GB de qualquer um deles quase certamente esgotará completamente a entropia do sistema, portanto, não faça nada criptográfico por um tempo depois.
dd ... bs=2G count=1
lê 2 GB na memória (em umaread(2)
chamada). Se você tem pressão de memória, provavelmente não é esse o caminho. Mais, blocos menores podem ser mais rápidos se isso significa menos paginação.Uma maneira fácil seria usar o
dd
comando para escrever um arquivo cheio de zeros.Use G no argumento de tamanho se desejar gigabytes de computador (1024 * 1024 * 1024) ou GB se desejar gigabytes humanos (1000 * 1000 * 1000).
fonte
/dev/urandom
nesse caso (é sem bloqueio, mas não é garantido que tenha o mesmo nível de aleatoriedade). Desenhar 2 GB de qualquer um deles quase certamente esgotará completamente a entropia do sistema, portanto, não faça nada criptográfico por um tempo depois.ftp://ftp.fsf.hu/testfiles/maketestfiles.sh
ou Procurar é o tamanho do arquivo que você deseja em bytes - 1.
fonte