$ 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
Falocate crea archivos grandes instantáneamente al manipular directamente el espacio en disco asignado al archivo:
$ 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
truncar también funciona instantáneamente y crea archivos dispersos que no usan espacio en disco real hasta que los datos se escriban más adelante:
$ 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=1lee 2 GB en la memoria (en una read(2)llamada). Si tienes presión de memoria, probablemente ese no sea el camino a seguir. Más, los bloques más pequeños pueden ser más rápidos si significa menos paginación.
claymation
19
Una manera fácil sería usar el ddcomando para escribir un archivo lleno de ceros.
dd if=/dev/zero of=outputFile bs=2G count=1
if = archivo de entrada
de = archivo de salida
bs = bytes
Utilice G en el argumento de tamaño si desea gigabytes de computadora (1024 * 1024 * 1024), o GB si desea gigabytes humanos (1000 * 1000 * 1000).
Solo agregaré que si no desea todos los ceros, puede elegir if = / dev / random
Denwerko
Aunque / dev / random tomará más tiempo.
con-f-use
10
El uso de / dev / random tendrá un horrible mucho tiempo. Úselo /dev/urandomen ese caso (no bloquea, pero no se garantiza que tenga el mismo nivel de aleatoriedad). Sacar 2 GB de cualquiera de ellos seguramente agotará por completo la entropía de su sistema, por lo que no haga nada criptográfico por un tiempo después.
dd ... bs=2G count=1
lee 2 GB en la memoria (en unaread(2)
llamada). Si tienes presión de memoria, probablemente ese no sea el camino a seguir. Más, los bloques más pequeños pueden ser más rápidos si significa menos paginación.Una manera fácil sería usar el
dd
comando para escribir un archivo lleno de ceros.Utilice G en el argumento de tamaño si desea gigabytes de computadora (1024 * 1024 * 1024), o GB si desea gigabytes humanos (1000 * 1000 * 1000).
fuente
/dev/urandom
en ese caso (no bloquea, pero no se garantiza que tenga el mismo nivel de aleatoriedad). Sacar 2 GB de cualquiera de ellos seguramente agotará por completo la entropía de su sistema, por lo que no haga nada criptográfico por un tiempo después.ftp://ftp.fsf.hu/testfiles/maketestfiles.sh
o Buscar es el tamaño del archivo que desea en bytes - 1.
fuente