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

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

¿Linux tiene un directorio temporal estándar para uso general, como la carpeta de Windows C:\Temp? Si es así, ¿dónde está ubicado? encontréuna pregunta SO sobre cómo encontrar un tmpdirectorio mediante programación, pero quiero establecer una ubicación temporal en un archivo de configuración XML con anticipación.

Respuesta1

ElEstándar de jerarquía del sistema de archivosla versión 3.0 dice:

/tmp: archivos temporales

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

Los programas no deben asumir que ningún archivo o directorio se /tmpconserva entre invocaciones del programa.

Razón fundamental

El estándar IEEE POSIX.1-2008 enumera requisitos similares a la sección anterior. Aunque los datos almacenados en /tmpse pueden eliminar de manera específica del sitio, se recomienda /tmpeliminar los archivos y directorios ubicados en cada vez que se inicia el sistema.

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

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

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

Los archivos y directorios ubicados en /var/tmpno se deben eliminar cuando se inicia el sistema. Aunque los datos almacenados en /var/tmpnormalmente se eliminan de manera específica del sitio, se recomienda que las eliminaciones se realicen en un intervalo menos frecuente que /tmp.

También elEspecificaciones básicas de Open Group Edición 7, Variables de entornomenciona lo siguiente:

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

sistemadtambién tiene algo que decir sobre esto:

/tmp/y/var/tmp/Hay dos directorios de escritura mundial que los sistemas Linux proporcionan para archivos temporales. El primero suele estar encendidotmpfsy, por lo tanto, respaldado por RAM/swap y eliminado en cada reinicio. Este último suele ser un sistema de archivos persistente y adecuado y, por lo tanto, está respaldado por almacenamiento físico. Esto significa:

  1. /tmp/debe usarse únicamente para archivos más pequeños y de tamaño limitado; /var/tmp/debe usarse para todo lo demás.

  2. Los datos que sobrevivirán a un ciclo de arranque no deben colocarse en archivos /tmp/.

Si la $TMPDIRvariable de entorno está configurada, use esa ruta y no la use /tmp/ni /var/tmp/directamente.

Verjerarquía de archivos (7)para obtener detalles sobre estos dos (y la mayoría de los demás) directorios de un sistema Linux.

Las rutas se pueden consultar conruta-systemd:

$ systemd-path temporary
/tmp
$ systemd-path temporary-large
/var/tmp

FreeBSD,NetBSD,OpenBSDyLibélulatienen algo similar descrito en elaquí(7)página de manual.

Respuesta2

Esta es una vieja pregunta por lo que hoy hay otra opción disponible. Las distribuciones de Linux en las que dependen systemd(que son el 90% de ellas) ahora pueden usar $XDG_RUNTIME_DIRel directorio (Especificación del directorio base XDG) para almacenar ciertos tipos de archivos temporales. Generalmente se encuentra en /run/user/$uid.

  • Este es un directorio por usuario que 700mantiene los archivos privados.
  • Este es un tmpfssoporte (también conocido como unidad RAM) con un gran rendimiento.
  • Se limpia automáticamente

La desventaja tmpfses que sólo debe usarse para almacenar archivos pequeños (archivos PID, archivos de bloqueo, sockets, etc.).

Respuesta3

Sí, /tmp es para uso general. VeraquíyaquíSobre el estándar de jerarquía del sistema de archivos.

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

Con algunos detalles más enumerados en el PDF.

Respuesta4

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 de /tmp podría eliminarse, si sabe qué archivos/carpetas son requeridos/no requeridos por varias aplicaciones en un "según sea necesario" base. Los archivos no necesarios suelen ser aquellos descargados por una aplicación para facilitar la aplicación en ese momento únicamente; por lo tanto, no son necesarios más después de que la aplicación haya funcionado. La carpeta /var/tmp no debe tocarse en absoluto.

información relacionada