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