¿Cuál es la diferencia entre / tmp y / var / tmp?

Respuestas:

114

/tmpse entiende como almacenamiento rápido (posiblemente pequeño) con una vida útil corta. Muchos sistemas se limpian /tmpmuy rápido: en algunos sistemas incluso se monta como disco RAM. /var/tmpnormalmente se encuentra en un disco físico, es más grande y puede contener archivos temporales durante más tiempo. Algunos sistemas también limpian /var/tmp, pero con menos frecuencia.

También tenga en cuenta que /var/tmppodría no estar disponible en el maletero-proceso temprano, como /vary / o /var/tmppuede haber puntos de montaje. Por lo tanto, es un poco comparable a la diferencia entre /biny /usr/bin. El primero está disponible durante el inicio temprano, el último después de que el sistema ha montado todo. Por lo tanto, la mayoría de los scripts de arranque se usarán /tmpy no /var/tmppara archivos temporales.

Otra ubicación (próxima) en Linux para archivos temporales es /dev/shm.

Nils
fuente
44
Me parece un poco irónico que /biny en /usr/binrealidad sean los mismos en estos días (enlaces simbólicos). ;-)
Felix Schwarz
2
@Felix No en todas las distribuciones todavía. Pero Linux se está moviendo de esa manera. Probablemente porque los discos se hacen cada vez más grandes.
Nils
26

/tmppuede ser, ya veces es, limpiado al reiniciar. /var/tmpse conserva entre reinicios.

Vea el artículo de Wikipedia sobre el FHS .

njsg
fuente
1
¡/ tmp incluso puede limpiar los archivos creados por un proceso justo después de que haya salido!
osvein
15

Tienen el mismo propósito y funcionalidad. Cada versión de UNIX / Linux manejará estos directorios de manera diferente. Históricamente, antes del advenimiento de los sistemas de archivos basados ​​en RAM / intercambio, tenía sistemas sin disco donde los sistemas de archivos /y /usrserían de solo lectura y /var(variable) serían de lectura y escritura. El /tmpnombre sería un enlace simbólico a /var/tmp. Más tarde, los sistemas sin disco pasaron de moda, el espacio en disco se volvió más barato (al tener sistemas de archivos raíz más grandes) y la tecnología permitió sistemas de archivos montados desde la memoria en lugar del disco. El /var/tmpdirectorio pasó de moda, pero algunos programas todavía lo usan.

En estos días, se configura más seguridad de forma predeterminada en /tmp, como los g+s,+tpermisos, pero no en /var/tmp. Además, /var/tmprara vez se monta desde RAM o intercambio.

Arcege
fuente
En mis sistemas Debian y Fedora, / tmp y / var / tmp tienen el mismo modo a+rwx+t, y no g+s.
sourcejedi
12

Especificaciones básicas de POSIX, número 7 en / tmp :

El siguiente directorio existirá en los sistemas conformes y se utilizará como se describe:

/ tmp

Un directorio disponible para aplicaciones que necesitan un lugar para crear archivos temporales. Se permitirá que las aplicaciones creen archivos en este directorio, pero no se supondrá que dichos archivos se conservan entre invocaciones de la aplicación.

El estándar de jerarquía de archivos 2.3 en / tmp :

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

Los programas no deben suponer que los archivos o directorios en / tmp se conservan entre invocaciones del programa.

Razón fundamental o base lógica

El estándar IEEE P1003.2 (POSIX, parte 2) establece requisitos similares a los de la sección anterior.

Aunque los datos almacenados en / tmp pueden eliminarse de una manera específica del sitio, se recomienda que los archivos y directorios ubicados en / tmp se eliminen cada vez que se inicie el sistema.

FHS agregó esta recomendación sobre la base de precedentes históricos y prácticas comunes, pero no lo hizo un requisito porque la administración del sistema no está dentro del alcance de esta norma.

POSIX no especifica / var / tmp . El FHS hace sin embargo :

El directorio / var / tmp está disponible para programas que requieren archivos temporales o directorios que se conservan entre los 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 eliminarse cuando se inicia el sistema. Aunque los datos almacenados en / var / tmp generalmente se eliminan de una manera específica del sitio, se recomienda que las eliminaciones se produzcan en un intervalo menos frecuente que / tmp .

osvein
fuente
Ahhh, me encanta la documentación. Ahora sé que sé y por qué creo que lo sé. Mis necesidades epistemológicas están tan satisfechas en este momento.
Stephen C