Cómo usar el Comando MKTEMP en Linux

Chuleta de comandos linux: CIBERED, tu web de linux de confianza 2026

El comando mktemp es una de las herramientas más útiles de Linux para crear archivos y directorios temporales de forma segura, única y sin conflictos con otros procesos. En 2026 sigue siendo especialmente importante porque evita uno de los errores clásicos de los scripts: usar nombres temporales predecibles que pueden colisionar o ser aprovechados por otros usuarios.

Su gran ventaja es sencilla: genera nombres aleatorios y seguros dentro de un patrón controlado por ti. Eso lo convierte en una opción ideal para scripts, automatizaciones, pruebas y tareas de administración del sistema.

¿Qué hace el comando mktemp?

mktemp crea archivos o directorios temporales con nombres únicos. En lugar de inventar tú un nombre manualmente, la herramienta genera uno aleatorio siguiendo una plantilla que normalmente termina en XXXXXX, que será reemplazado por una cadena única.

La sintaxis básica es esta:

mktemp [OPCIÓN...] [PLANTILLA]

Si no indicas una plantilla, mktemp crea un archivo temporal en el directorio temporal por defecto del sistema, normalmente /tmp.

¿Cómo crear un archivo temporal?

La forma más simple de usarlo es sin parámetros:

mktemp

La salida típica será algo así:

/tmp/tmp.Hx6Ixq8Bxe

Eso significa que mktemp ha creado un archivo temporal en /tmp con un nombre único. Este comportamiento es muy útil cuando quieres un archivo de trabajo rápido sin preocuparte por si ya existe otro igual.

Usando una plantilla personalizada

También puedes definir un patrón para el nombre del archivo temporal. La plantilla debe terminar en XXXXXX:

mktemp /tmp/myfile.XXXXXX

La salida podría ser:

/tmp/myfile.Hx6Ixq8Bxe

Aquí el nombre empieza por myfile. y termina con una cadena aleatoria generada por el sistema. Esto resulta muy práctico cuando quieres identificar fácilmente para qué sirve un archivo temporal dentro de un script o una sesión de trabajo.

¿Cómo crear los archivos en un directorio concreto?

Si quieres que el archivo temporal se cree en otra ubicación, puedes indicarlo con --tmpdir:

mktemp --tmpdir=~/project myfile.XXXXXX

La salida esperada sería algo como:

/home/labex/project/myfile.Hx6Ixq8Bxe

Esto te permite guardar el temporal en el directorio que tú elijas, en lugar de dejarlo en /tmp. Es útil cuando estás trabajando dentro de un proyecto y quieres mantener todo ordenado.

¿Cómo crear directorios temporales?

mktemp también puede crear directorios, no solo archivos. Para ello se usa la opción -d:

mktemp -d /tmp/mydir.XXXXXX

La salida podría ser:

/tmp/mydir.Hx6Ixq8Bxe

En este caso, se crea un directorio temporal con nombre único. Esta opción es muy valiosa cuando un script necesita una carpeta de trabajo aislada para descomprimir archivos, almacenar resultados intermedios o generar contenido temporal.

Seguridad de los archivos temporales

Una de las mayores fortalezas de mktemp es que crea archivos temporales con permisos seguros por defecto. Eso significa que el archivo:

  • pertenece al usuario actual.
  • tiene permisos de lectura y escritura solo para el propietario.
  • no es accesible para otros usuarios.

Normalmente esto equivale a permisos como 0600 para archivos, lo cual protege el contenido frente a accesos no autorizados. En scripts modernos, esta característica es una forma sencilla y muy efectiva de evitar problemas de seguridad.

¿Cómo ajustar los permisos explícitamente?

Si quieres controlar los permisos de forma manual, puedes usar --mode. Por ejemplo:

mktemp --mode=0600 /tmp/myfile.XXXXXX

La salida será algo como:

/tmp/myfile.Hx6Ixq8Bxe

Aquí el archivo se crea con permisos de lectura y escritura solo para el propietario. Esto es ideal cuando el temporal contendrá credenciales, tokens, resultados sensibles o datos intermedios que no deberían ser visibles para otros usuarios.

¿Cómo crear directorios seguros?

También puedes combinar -d con --mode para crear directorios temporales con permisos restringidos:

mktemp -d --mode=0700 /tmp/mydir.XXXXXX

La salida puede ser:

/tmp/mydir.Hx6Ixq8Bxe

En este caso, el directorio queda accesible solo por el propietario. Es una práctica muy recomendable cuando un script va a guardar archivos temporales dentro de esa carpeta y quieres evitar que otros usuarios del sistema puedan leerlos o listarlos.

¿Cuándo usar el comando mktemp?

mktemp es especialmente útil en estas situaciones:

  • scripts Bash que necesitan archivos temporales seguros.
  • automatizaciones que procesan datos intermedios.
  • pruebas rápidas en terminal.
  • extracción temporal de archivos.
  • generación de directorios de trabajo aislados.
  • manejo de información sensible.

En otras palabras, es la forma correcta de crear temporales sin depender de nombres manuales o de convenciones inseguras.

Buenas prácticas

Cuando escribas scripts, evita nombres como /tmp/archivo.tmp o /tmp/resultados.txt si el archivo puede existir ya o contener información sensible. mktemp resuelve ese problema automáticamente y reduce el riesgo de colisiones o ataques de carrera.

También conviene guardar la ruta devuelta por mktemp en una variable para reutilizarla después. Por ejemplo:

tmpfile=$(mktemp)
echo "hola" > "$tmpfile"
cat "$tmpfile"

Ese patrón es muy común y limpio para scripts temporales de uso breve.


Conclusión

mktemp es la herramienta adecuada para crear archivos y directorios temporales únicos y seguros en Linux. Sigue siendo muy importante en 2026 porque evita nombres predecibles, mejora la seguridad y simplifica la creación de recursos temporales en scripts y tareas de administración.

Sus usos principales incluyen:

  • mktemp para crear un archivo temporal en /tmp.
  • mktemp /ruta/prefijo.XXXXXX para usar una plantilla personalizada.
  • mktemp --tmpdir=/ruta nombre.XXXXXX para elegir directorio.
  • mktemp -d para crear un directorio temporal.
  • mktemp --mode=0600 o --mode=0700 para reforzar la seguridad.

Si quieres, en el siguiente mensaje te lo convierto en una versión más elegante y SEO, con estilo de artículo profesional y mejor redacción para publicación.

Vistas: 0
Scroll al inicio