Aprende a crear fácilmente archivos vacíos de cierto tamaño en Linux usando solo la terminal.

A veces cuando trabajas con aplicaciones que necesitan archivos de gran tamaño (de los que no tienes en el momento preciso en el que trabajas), es bastante más fácil crearlo dinámicamente en lugar de descargarlo o transferirlo desde un disco duro portátil. En un entorno Linux, esto es bastante fácil de hacer y hay varias formas de hacerlo. En este artículo te explicaremos cómo hacer esto de 4 formas diferentes.

Nota

Los archivos creados por las instrucciones fallocatetruncateno son aptos para trabajar con editores de texto, por lo que están destinados a ser archivos binarios que ocupan X espacio en su disco. Los comandos head dd utilizarán IO en gasto general.

Habiendo dicho eso, ¡comencemos!

A. Usando fallocate

La primera opción para crear un archivo con un tamaño fijo es usar el comando fallocate. Fallocate se utiliza para manipular el espacio en disco asignado a un archivo, ya sea para desasignarlo o preasignarlo. Para los sistemas de archivos que admiten la llamada al sistema de Fallocate, la preasignación se realiza rápidamente asignando bloques y marcándolos como no inicializados, lo que no requiere IO para los bloques de datos. El comando recibe en bytes el tamaño del archivo que se debe generar, por ejemplo para generar un archivo de 10 MB, el siguiente comando debería hacer el truco:

fallocate -l 1000000 file.txt

También podría usar una sintaxis corta para escribir en Megabytes como este, por ejemplo, el siguiente comando generaría un archivo de 10Mb:

fallocate -l $((10*1024*1024)) file.txt

Esta opción no utiliza gastos generales de entrada/salida, el espacio se asignará inmediatamente.

B. Usando truncate

La otra opción para crear los archivos es el comando truncar. El comando truncar permite reducir o extender el tamaño de un archivo a un tamaño específico, recibe como argumento la ruta de archivo que se crea si no existe. Si un ARCHIVO es más grande que el tamaño especificado, los datos adicionales se pierden. Si es más corto, se extiende y la parte extendida (agujero) se lee como cero bytes.

El siguiente comando crearía un archivo de 10 MB:

truncate -s 10M file.txt

Esto crea un archivo lleno de bytes nulos. Si el archivo ya existe y es más pequeño, su tamaño se extiende al tamaño solicitado con bytes nulos. De lo contrario, si es más grande, se trunca al tamaño solicitado. El archivo de resultado de este comando será un archivo disperso.

C. Usando dd

dd es una utilidad de línea de comandos para Unix y sistemas operativos similares a Unix cuyo propósito principal es convertir y copiar archivos. Con el siguiente comando, debería poder crear un archivo con un tamaño personalizado (reemplazando 10 MB con el tamaño del archivo que desea generar):

dd if=/dev/urandom of=ostechnix.txt bs=10MB count=1

El comando generará la siguiente salida:

1+0 records in
1+0 records out
10000000 bytes (10 MB, 9,5 MiB) copied, 0,280547 s, 35,6 MB/s

Y el archivo debe tener el tamaño deseado.

D. Usando head

El comando head es una utilidad de línea de comandos para generar la primera parte de los archivos que se le proporcionan a través de la entrada estándar. Escribe los resultados en la salida estándar.

head -c 10MB /dev/urandom > file.txt

Este comando creará un archivo no disperso lleno de bytes nulos.

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores