2011-09-06 19:43:10 +0000 2011-09-06 19:43:10 +0000
65
65

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

Linux dispose-t-il d'un répertoire temporaire standard pour un usage général, comme le dossier C:\Temp de Windows ? Si oui, où se trouve-t-il ? J'ai trouvé une question de SO sur la recherche d'un répertoire tmp par programmation , mais je veux définir à l'avance un emplacement temporaire dans un fichier de configuration XML.

Réponses (5)

97
97
97
2011-09-06 20:09:43 +0000

La Norme de hiérarchie des systèmes de fichiers version 3.0 dit :

/tmp : Fichiers temporaires

Le répertoire /tmp doit être rendu disponible pour les programmes qui nécessitent des fichiers temporaires.

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

Raisonnement

La norme IEEE POSIX.1-2008 énumère des exigences similaires à celles de la section ci-dessus. Bien que les données stockées dans /tmp puissent être supprimées de manière spécifique à un site, il est recommandé de supprimer les fichiers et répertoires situés dans /tmp à chaque démarrage du système.

FHS a ajouté cette recommandation sur la base de précédents historiques et de pratiques courantes, mais n'en a pas fait une exigence car l'administration du système n'entre pas dans le champ d'application de cette norme.

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

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

Les fichiers et répertoires situés dans /var/tmp ne doivent pas être supprimés lors du démarrage du système. Bien que les données stockées dans /var/tmp soient généralement supprimées 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 The Open Group Base Specifications Issue 7, Environment Variables mentionne ce qui suit :

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

11
11
11
2017-03-28 17:56:59 +0000

C'est une vieille question, donc aujourd'hui il y a une autre option disponible. Les distributions Linux reposant sur systemd (soit 90 % d'entre elles) peuvent désormais utiliser le répertoire $XDG_RUNTIME_DIR 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 des autorisations 700 qui offre une meilleure sécurité. Il s'agit d'un montage tmpfs qui offre des performances. L'inconvénient de tmpfs est qu'il ne doit être utilisé que pour conserver des petits fichiers et des sockets.

Je le vois comme un mariage de /tmp et /var/run.

10
10
10
2011-09-06 20:13:09 +0000

Oui /tmp est pour un usage général. Voir ici et ici sur la norme de hiérarchie des systèmes de fichiers.

/tmp/ Fichiers temporaires (voir aussi /var/tmp). Souvent non préservés entre les redémarrages du système.

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

2
2
2
2011-09-06 20:23:58 +0000

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 faire cela sous Windows. Selon l'article de Wikipedia article sur les dossiers temporaires , le répertoire temporaire sous Windows 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 règle TEMP sur autre chose, alors tout programme utilisant votre fichier XML pour choisir un répertoire temporaire échouerait.

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

Quoi qu'il en soit, le répertoire temporaire standard dans un système Linux typique est /tmp. Il 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 pourriez essayer de choisir un répertoire temporaire relatif au répertoire d'origine de l'utilisateur, que vous pouvez créer.

0
0
0
2019-07-27 13:18:41 +0000

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