¿Linux tiene un directorio temporal estándar para uso general, como la C:\Temp
carpeta de Windows ? Si es así, ¿dónde está ubicado? Encontré una pregunta SO sobre cómo encontrar un tmp
directorio mediante programación , pero quiero establecer una ubicación temporal en un archivo de configuración XML antes de tiempo.
linux
temporary-files
Estallidos
fuente
fuente
/tmp
, pero eran ambiguas sobre si eso es estándar para Linux o simplemente una convención común.C:\Temp
es sin duda no estándar. Windows 95 ya tenía%TEMP%
apuntando aC:\WINDOWS\Temp
.Respuestas:
La versión 3.0 de la jerarquía del sistema de archivos dice:
Además, el número 7 de las especificaciones básicas de The Open Group, Variables de entorno, menciona lo siguiente:
fuente
Esta es una vieja pregunta, así que hoy hay otra opción disponible. Las distribuciones de Linux en las
systemd
que se basa (que es el 90% de ellas) ahora pueden usar el$XDG_RUNTIME_DIR
directorio ( XDG Base Directory Specification ) para almacenar ciertos tipos de archivos temporales. Generalmente se encuentra en/run/user/$uid
. Este es un directorio por usuario con700
permisos que proporciona una mejor seguridad. Este es untmpfs
soporte que proporciona rendimiento. La desventaja de estotmpfs
es que solo debe usarse para mantener pequeños archivos y sockets.Lo veo como un matrimonio de
/tmp
y/var/run
.fuente
Sí / tmp es para uso general. Ver aquí y aquí en el estándar de jerarquía del sistema de archivos.
Con algunos detalles más enumerados en el PDF.
fuente
No puede elegir un solo nombre de directorio temporal con anticipación que funcione para cualquier sistema Linux. De hecho, tampoco puedes hacer eso en Windows. Según el artículo de Wikipedia sobre carpetas temporales , el directorio temporal en Windows está determinado por la variable de entorno TEMP. Si simplemente estuviera usando
c:\Temp
un directorio temporal en un sistema Windows que configurara TEMP en otra cosa, entonces cualquier programa que use su archivo XML para elegir un directorio temporal fallará.En resumen, el directorio temporal del sistema está determinado por el entorno en todos los sistemas operativos modernos que conozco, incluidos Windows y cualquier sistema similar a UNIX. Establecer una única ruta estática como su directorio temporal solo funcionará mientras no se hayan cambiado los valores predeterminados.
De todos modos, el directorio temporal estándar en un sistema Linux típico es
/tmp
. Es el equivalente deC:\Temp
en el sentido de que es solo el directorio temporal predeterminado, 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 debe utilizarse en su lugar.Puede intentar elegir un directorio temporal relativo al directorio de inicio del usuario, que puede crear.
fuente
TMPDIR
variable de entorno./tmp
preside la variable temporal?La pregunta inicial fue: ¿Linux tiene un directorio temporal estándar? Si es así, ¿dónde está ubicado? Las carpetas tmp se encuentran en: Sistema de archivos / tmp y Sistema de archivos / var / tmp El contenido / tmp podría eliminarse, si sabe qué archivos / carpetas son necesarios / no son necesarios para varias aplicaciones en un "según sea necesario" base. Los archivos no requeridos generalmente son aquellos descargados por una aplicación para facilitar la aplicación en ese punto solamente, por lo tanto, no se requieren más después de que la aplicación haya funcionado. La carpeta / var / tmp no debe tocarse en absoluto.
fuente