87 votes

Où se trouve le répertoire temporaire sous Linux ?

Est-ce que Linux a un répertoire temporaire standard pour un usage général, comme celui de Windows ? C:\Temp dossier ? Si oui, où se trouve-t-il ? J'ai trouvé une question sur la recherche d'un tmp répertoire de manière programmatique mais je veux définir à l'avance un emplacement temporaire dans un fichier de configuration XML.

117voto

bene Points 2144

El Standard de la hiérarchie des systèmes de fichiers version 3.0 dit :

/tmp : Fichiers temporaires

El /tmp doit être mis à la disposition des programmes qui exigent des fichiers temporaires.

Les programmes ne doivent pas supposer que les fichiers ou les répertoires de l'application /tmp sont préservées entre les invocations du programme.

Justification

La norme IEEE POSIX.1-2008 énumère des exigences similaires à la section ci-dessus. Bien que les données stockées dans /tmp peut être supprimée de manière spécifique à un site, elle Il est recommandé que les fichiers et répertoires situés dans /tmp être supprimé à chaque fois que le système est démarré.

FHS a ajouté cette recommandation sur la base d'un précédent historique et d'une pratique courante. pratique courante, mais n'en a pas fait une exigence parce que l'administration du système système n'entre pas dans le cadre de cette norme.

/var/tmp : Fichiers temporaires conservés entre les redémarrages du système

El /var/tmp est mis à la disposition des programmes qui nécessitent de fichiers ou de répertoires temporaires qui sont conservés entre les redémarrages redémarrage du système. Par conséquent, les données stockées dans /var/tmp est plus persistant que données dans /tmp .

Les fichiers et répertoires situés dans /var/tmp ne doit pas être supprimé lorsque le système est démarré. Bien que les données stockées dans /var/tmp est généralement supprimé de manière spécifique à un site, il est recommandé que les suppressions se produisent à un intervalle moins fréquent que /tmp .

De même, le Spécifications de base de l'Open Group numéro 7, Variables d'environnement mentionne les éléments suivants :

TMPDIR Cette variable doit représenter le nom de chemin d'un répertoire mis à la disposition des programmes qui ont besoin d'un endroit pour créer des fichiers temporaires.

14voto

oᴉɹǝɥɔ Points 281

Il s'agit d'une ancienne question. Aujourd'hui, une autre option est disponible. Les distributions Linux reposant sur systemd (soit 90% d'entre eux) peuvent désormais utiliser $XDG_RUNTIME_DIR répertoire ( Spécification du répertoire de base XDG ) pour stocker certains types de fichiers temporaires. Il est généralement situé à /run/user/$uid . Il s'agit d'un répertoire par utilisateur avec 700 les permissions, ce qui assure une meilleure sécurité. Il s'agit d'un tmpfs monture qui assure la performance. L'inconvénient de tmpfs est qu'il ne devrait être utilisé que pour conserver de petits fichiers et sockets.

Je vois ça comme un mariage de /tmp y /var/run .

11voto

nsantorello Points 437

Oui, /tmp est pour un usage général. Voir これ y これ Sur le standard de la hiérarchie des systèmes de fichiers.

/tmp/ Fichiers temporaires (voir aussi /var/tmp). Souvent, ils ne sont pas conservés entre les redémarrages du système.

Avec quelques détails supplémentaires énumérés dans le PDF.

3voto

Jeff Dallien Points 1171

Vous ne pouvez pas choisir à l'avance un seul nom de répertoire temporaire qui fonctionnera pour n'importe quel système Linux. En fait, vous ne pouvez pas non plus le faire sous Windows. D'après le site Wikipedia article sur les dossiers temporaires Sous Windows, le répertoire temporaire est déterminé par la variable d'environnement TEMP. Si vous utilisiez simplement c:\Temp comme répertoire temporaire sur un système Windows qui a défini TEMP sur autre chose, alors tout programme utilisant votre fichier XML pour choisir un répertoire temporaire échouera.

En bref, le répertoire temporaire du système est déterminé par l'environnement sur tous les systèmes d'exploitation modernes que je connais, y compris Windows et les systèmes de type UNIX. Définir un chemin statique unique comme répertoire temporaire ne fonctionnera que si les valeurs par défaut n'ont pas été modifiées.

De toute façon, le répertoire temporaire standard dans un système Linux typique est /tmp . C'est l'équivalent de C:\Temp dans le sens où il est seulement le répertoire temporaire par défaut, et non universel. Même si /tmp est disponible, si un utilisateur (ou le système) a défini la variable d'environnement TEMP, la valeur de cette variable doit être utilisée à la place.

Vous pouvez essayer de choisir un répertoire temporaire relatif au répertoire personnel de l'utilisateur, que vous pouvez créer.

0voto

FranklynA Points 1

La question initiale était : Est-ce que Linux a un répertoire temporaire standard. Si oui, où se trouve-t-il ? Le(s) répertoire(s) tmp se trouve(nt) à : Système de fichiers/tmp & Système de fichiers/var/tmp Le contenu de /tmp peut être supprimé - si vous savez quels fichiers/dossiers sont requis/non requis par les différentes applications sur une base "au besoin". Les fichiers non requis sont généralement ceux qui sont téléchargés par une application pour faciliter l'exécution de l'application elle-même à ce moment-là seulement - ils ne sont donc plus requis après l'exécution de l'application. Le dossier /var/tmp ne devrait pas être touché du tout.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X