El directorio /tmp en Linux

Inicio / Linux / El directorio /tmp en Linux

El directorio /tmp es un espacio temporal donde el sistema y las aplicaciones almacenan datos que solo se necesitan por un corto período de tiempo. La mayoría de las distribuciones de Linux están configuradas para vaciar automáticamente su contenido cada vez que el sistema se reinicia.

Ejemplo de uso del directorio /tmp

Supongamos que estás instalando un software en tu sistema. Durante la instalación, el instalador puede necesitar almacenar archivos temporales en /tmp.

Otro caso común es cuando trabajas en un documento y el editor de texto guarda versiones automáticas en este directorio para evitar la pérdida de datos en caso de un fallo del sistema.

En pocas palabras, /tmp se usa para archivos que solo son necesarios temporalmente y pueden eliminarse una vez que dejan de ser útiles.

Diferencia entre el directorio /tmp y /var/tmp

Aunque /tmp y /var/tmp parecen similares, la diferencia clave radica en la duración y el propósito de los archivos que almacenan.

Diferencias principales

Duración de los archivos

  • Los archivos en /tmp suelen eliminarse automáticamente en cada reinicio del sistema.
  • Los archivos en /var/tmp permanecen incluso después de reiniciar el sistema.

Acceso de usuarios

  • Los archivos en /tmp suelen ser accesibles para todos los usuarios del sistema.
  • En /var/tmp, los archivos suelen ser específicos de cada usuario.

Uso principal

  • /tmp almacena archivos temporales de corta duración, como los que se generan durante la instalación de paquetes.
  • /var/tmp se usa para archivos temporales que necesitan permanecer más tiempo, como registros del sistema o copias de seguridad.

Variable de entorno TMPDIR en Ubuntu

La variable de entorno TMPDIR almacena la ruta del directorio temporal dentro del sistema, en general suele ser /tmp, pero esta variable nos permite modificar esta ruta. En algunas versiones de Ubuntu, como 16.04, 18.04 y 20.04, la variable de entorno TMPDIR no está definida por defecto. Si no está definida, algunas aplicaciones pueden no encontrar la ubicación adecuada para estos archivos.

Para establecer la variable TMPDIR, puedes ejecutar:

export TMPDIR=/tmp

Para que este cambio sea permanente, añade la línea anterior al final de tu archivo ~/.bashrc:

echo 'export TMPDIR=/tmp' >> ~/.bashrc
source ~/.bashrc

Verifica si TMPDIR está definida con:

echo $TMPDIR

Si no muestra ninguna salida, significa que la variable no está definida.

Cómo saber la ubicación del directorio temporal con mktemp

Otra forma de conocer la ubicación del directorio temporal asignado por el sistema es utilizando el comando mktemp. Este comando crea un archivo temporal y devuelve su ruta, lo que permite determinar qué directorio está siendo utilizado para archivos temporales.

Para obtener la ubicación del directorio temporal, ejecuta:

mktemp -d

Este comando creará un directorio temporal y mostrará su ruta. Si la variable TMPDIR está definida, el directorio temporal se creará dentro de la ubicación especificada por TMPDIR. Si no está definida, el sistema usará /tmp por defecto.

Si solo quieres saber la ubicación sin crear un directorio, puedes usar:

dirname $(mktemp -u)

Esto devolverá el directorio donde se crearía un archivo temporal sin llegar a crearlo realmente.

Usar mktemp es una manera práctica de verificar qué directorio está siendo utilizado para almacenar archivos temporales, especialmente en sistemas donde la variable TMPDIR no está configurada explícitamente.