¿Generar file de un cierto tamaño?

Me gustaría generar un file con el nombre example.file . Podría usar

 touch example.file 

pero quiero que el file tenga exactamente 24 MB de tamaño. Ya revisé la página de manual del tacto, pero no hay ningún parámetro como este. ¿Hay una manera fácil de generar files de un cierto tamaño?

Puedes usar dd:

 dd if=/dev/zero of=output.dat bs=24M count=1 

o

 dd if=/dev/zero of=output.dat bs=1M count=24 

En sistemas Linux o Cygwin no integrados (o cualquier sistema con coreutils de GNU) y FreeBSD:

 truncate -s 24m example.file 

Esto crea un file lleno de bytes nulos. Si el file ya existe y es más pequeño, se extiende al tamaño solicitado con bytes nulos. Si el file ya existe y es más grande, se trunca al tamaño solicitado.

Los bytes nulos no consumen ningún espacio en disco, el file es un file disperso .

En muchos sistemas, head -c 24m </dev/zero >example.file crea un file no disperso lleno de bytes nulos. Si head no tiene una opción -c en su sistema (es común pero no en POSIX), puede usar dd bs=1024k count=24 </dev/zero >example.file lugar (esto es POSIX-compatible).

Si no le importa el contenido del file, esto es mucho más rápido que usar dd :

 fallocate -l 24M filename 

Obviamente, utilizar dd para un file de 24 MB no llevará time en un sistema moderno, pero los files más grandes pueden ser notablemente lentos.

Puedes usar dd:

dd if = / dev / zero of = file de salida.out bs = 1024k count = 24

O en caso de que esté usando Solaris

 mkfile 24m outputfile.out 
 FROM_NODE=N01; echo; cd $MOUNT_PATH; pwd; ls -la; sleep 1; echo; WHEN="$(date +%Y-%m-%d_%H-%M-%S)"; fallocate -l 10M $MOUNT_PATH/"$FROM_NODE"_"$WHEN".dump ls -lha; echo;