A veces es necesario crear ficheros grandes para hacer pruebas. Ya sean pruebas de tiempo de descarga de un fichero o bien para testear una configuración de Zabbix. Cuando hablamos de crear ficheros grandes en GNU/Linux siempre debemos de tener en cuenta tres comandos básicos: dd, truncate, fallocate.

Conceptos básicos

Antes de empezar a explicar como son los comandos para crear ficheros, es importante tener algunos conceptos básicos de como funcionan cada uno de estos programas.

El comando dd, querido por muchos, es un comando para crear ficheros de gran tamaño que crea los ficheros de forma lenta y minuciosa, ya que escribe los bloques de datos en al unidad física y por lo tanto el genera un tiempo elevado en las operaciones I/O (de entrada y salida). De todas formas, dd permite crear cualquier tipo de fichero y soporta todos los sistemas de ficheros a diferencia de fallocate. Digamos que dd es un comando lento, pero compatible con todos.

Por otro lado tenemos el comando truncate a diferencia de dd, éste es más rápido pero puede dar algunos problemas. Ya que no crea un fichero escribiendo en la unidad física como hace dd sino que simula como si hubiese un archivo de un tamaño específico.

Y finalmente, tenemos fallocate que es muy rápido y el más fiable de todos. fallocate reserva y localiza el espacio especificado y es más rápido que dd porque no escribe bloques de datos. A diferencia de dd, fallocate solo soporta sistemas de archivos xfs, ext4, btrfs y tmpf.

Crear ficheros grandes con dd

Simplemente debemos de abrir nuestra terminal favorita y escribir lo siguiente:

dd if=/dev/zero of=fichero bs=1024 count=1024000

En este caso estaremos creando un fichero lleno de ceros que ocupa exactamente 1G (1024 bytes * 1000). También podemos usar /dev/random para generar el fichero, por si necesitamos un fichero que no sea unicamente de ceros.

Crear ficheros grandes con truncate

Para truncate, deberemos de escribir lo siguiente:

truncate -s 1000 fichero

Esto crea un fichero de 1000 bytes, que para du no constará que ocupa eso pero para el sistema de ficheros si.

$ du -sh fichero 
0       fichero

$ ls -lat | grep fichero
-rw-rw-r--  1 t3rr0rz0n3 t3rr0rz0n3        1000 de febr.  6 19:49 fichero

Al ser un fichero virtual, se puede aumentar su tamaño o disminuir con este comando:

truncate -s +1000 fichero
truncate -s -1000 fichero

Crear ficheros grandes con fallocate

Y para finalizar, y para mi el que más me gusta a la hora de crear ficheros:

fallocate -l 1G fichero
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación