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.
Réponses
Trop de publicités?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.
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
.
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.
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.