2011-09-06 19:43:10 +0000 2011-09-06 19:43:10 +0000
65
65

¿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 mediante programación , pero quiero establecer una ubicación temporal en un archivo de configuración XML por adelantado.

Respuestas (5)

97
97
97
2011-09-06 20:09:43 +0000

El Filesystem Hierarchy Standard versión 3.0 dice:

/tmp : Temporary files

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 conservan 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, se recomienda que los archivos y directorios ubicados en /tmp sean borrados cada vez que se inicie el sistema.

El FHS ha añadido esta recomendación basándose en los precedentes históricos y en la práctica habitual, pero no la ha convertido en un requisito porque la administración del sistema no entra en el ámbito de esta norma.

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

El directorio /var/tmp se pone a disposición de los programas que requieren archivos o directorios temporales que se conservan entre reinicios del sistema. Por lo tanto, los datos almacenados en /var/tmp son más persistentes que los datos en /tmp.

Los archivos y directorios ubicados en /var/tmp no deben ser borrados cuando el sistema se reinicie. Aunque los datos almacenados en /var/tmp suelen borrarse de forma específica, se recomienda que los borrados se produzcan con un intervalo menos frecuente que en /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.

11
11
11
2017-03-28 17:56:59 +0000

Esta es una pregunta antigua, por lo que hoy en día hay otra opción disponible. Las distribuciones de Linux que dependen de systemd (que son el 90% de ellas) pueden ahora utilizar el directorio $XDG_RUNTIME_DIR XDG Base Directory Specification ) para almacenar ciertos tipos de archivos temporales. Generalmente se encuentra en /run/user/$uid. Se trata de un directorio por usuario con permisos 700 que proporciona mayor seguridad. Se trata de un montaje tmpfs que proporciona rendimiento. La desventaja de tmpfs es que sólo debe usarse para guardar archivos pequeños y sockets.

Yo lo veo como un matrimonio de /tmp y /var/run.

10
10
10
2011-09-06 20:13:09 +0000

Sí, /tmp es de uso general. Ver aquí y aquí En 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 reinicios del sistema.

Con algunos detalles más en el PDF.

2
2
2
2011-09-06 20:23:58 +0000

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, 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 a 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 directorio temporal sólo funcionará mientras no se hayan cambiado los valores por defecto.

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.

Podría intentar elegir un directorio temporal relativo al directorio personal del usuario, que puede crear.

0
0
0
2019-07-27 13:18:41 +0000

La pregunta inicial era: ¿Tiene Linux un directorio temporal estándar? Si es así, ¿dónde se encuentra? La(s) carpeta(s) tmp se encuentran en: File System/tmp & File System/var/tmp El contenido de /tmp podría ser eliminado - si usted sabe qué archivos/carpetas son requeridos/no requeridos por varias aplicaciones en una base “según sea necesario”. Los archivos no requeridos suelen ser aquellos descargados por una aplicación para facilitar la propia aplicación en ese momento, por lo que no son necesarios después de que la aplicación haya actuado. La carpeta /var/tmp no debería tocarse en absoluto.