¿Dónde está el directorio temporal en Linux?

¿Tiene Linux un directorio temporal estándar para uso general, como la carpeta "C:Temp" de Windows? Si es así, ¿dónde se encuentra? Encontré una pregunta de SO sobre cómo encontrar un directorio tmp programáticamente, pero quiero establecer una ubicación temporal en un archivo de configuración XML antes de tiempo.

Solución

El Filesystem Hierarchy Standard versión 3.0 dice:

/tmp : Archivos temporales

El directorio /tmp debe ser El directorio /tmp debe estar disponible para los programas que requieren archivos temporales.

Los programas no deben asumir que los archivos o directorios en /tmp se conservados entre las invocaciones del programa.

Razón

El estándar IEEE POSIX.1-2008 enumera requisitos similares a los de la sección anterior. Aunque los datos almacenados en /tmp pueden ser borrados de manera específica para cada sitio, se se recomienda que los archivos y directorios ubicados en /tmp sean borrados siempre que se inicie el sistema.

El FHS añadió esta recomendación basándose en el precedente histórico y en la práctica común práctica común, pero no lo hizo un requisito porque la administración del sistema es no está dentro del alcance de esta norma.

/var/tmp : Archivos temporales conservados entre reinicios del sistema

/var/tmp : Archivos temporales conservados entre reinicios del sistema El directorio /var/tmp está disponible para los programas que requieren archivos o directorios temporales que se conservan entre los reinicios del sistema reinicios del sistema. Por lo tanto, los datos almacenados en /var/tmp son más persistentes que los datos en /tmp.

Los ficheros y directorios ubicados en /var/tmp no deben ser borrados cuando el el sistema es arrancado. Aunque los datos almacenados en /var/tmp suelen ser se borran de manera específica, se recomienda que los borrados ocurran en un intervalo menos frecuente que /tmp.

También el The Open Group Base Specifications Issue 7, Environment Variables menciona lo siguiente:

TMPDIR Esta variable representará un nombre de ruta de un directorio disponible para los programas que necesitan un lugar para crear archivos temporales.

Comentarios (1)

Sí, /tmp es de uso general. Consulte aquí y aquí sobre el estándar de la jerarquía del sistema de archivos.

/tmp/ Archivos temporales (ver también /var/tmp). A menudo no se conservan entre los reinicios del sistema.

Con algunos detalles más en el PDF.

Comentarios (0)

No se puede elegir de antemano un único nombre de directorio temporal que sirva para cualquier sistema Linux. De hecho, tampoco puedes hacerlo en Windows. Según el [artículo sobre carpetas temporales] de Wikipedia (http://en.wikipedia.org/wiki/Temporary_folder), el directorio temporal en Windows está determinado por la variable de entorno TEMP. Si simplemente usara c:\Temp como directorio temporal en un sistema Windows que estableciera TEMP en otra cosa, entonces cualquier programa que usara su archivo XML para elegir un directorio temporal fallaría.

En resumen, el directorio temporal del sistema está determinado por el entorno en todos los sistemas operativos modernos que conozco, incluyendo tanto Windows como cualquier sistema tipo UNIX. Establecer una única ruta estática como su directorio temporal sólo funcionará mientras los valores por defecto no hayan sido cambiados.

De todos modos, el directorio temporal estándar en un sistema Linux típico es /tmp. Es el equivalente a C:\Temp en el sentido de que es sólo el directorio temporal por defecto, no universal. Incluso si /tmp está disponible, si un usuario (o el sistema) ha establecido la variable de entorno TEMP, el valor de esa variable debería usarse en su lugar.

Puede intentar elegir un directorio temporal relativo al directorio personal del usuario, que puede crear.

Comentarios (3)