Come posso creare rapidamente un file di grandi dimensioni?

Qual è un modo semplice e veloce per creare un file con dimensioni di 2 GB?

Il metodo di riempimento a zero (qui modificato per evitare potenziali colli di bottiglia nella memoria ) impiega 17 secondi per creare un file da 10 GB su un SSD e fa sì che l’interfaccia grafica di Ubuntu non risponda.

$ 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 crea immediatamente file di grandi dimensioni direttamente manipolando lo spazio su disco allocato del file:

 $ 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 

Truncate funziona anche all’istante e crea file sparsi che non utilizzano lo spazio reale del disco finché i dati non vengono scritti in un secondo momento:

 $ 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 

Un modo semplice sarebbe usare il comando dd per scrivere un file pieno di zeri.

 dd if=/dev/zero of=outputFile bs=2G count=1 
  • if = file di input
  • di = file di output
  • bs = byte

Usa G nell’argomento dimensione se vuoi un gigabyte di computer (1024 * 1024 * 1024) o GB se vuoi gigabyte umani (1000 * 1000 * 1000).

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

o Cerca è la dimensione del file che si desidera in byte – 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