Wo befindet sich das temporäre Verzeichnis in Linux?

Hat Linux ein standardmäßiges temporäres Verzeichnis für den allgemeinen Gebrauch, wie der Windows-Ordner "C:Temp"? Wenn ja, wo befindet es sich? Ich habe eine SO-Frage zum programmatischen Auffinden eines `tmp'-Verzeichnisses gefunden, aber ich möchte den temporären Speicherort in einer XML-Konfigurationsdatei im Voraus festlegen.

Lösung

Der Filesystem Hierarchy Standard Version 3.0 sagt:

/tmp : Temporäre Dateien

Das Verzeichnis /tmp muss für Programme, die temporäre Dateien benötigen, zur Verfügung gestellt werden. temporäre Dateien benötigen.

Programme dürfen nicht davon ausgehen, dass Dateien oder Verzeichnisse in /tmp zwischen Aufrufen des Programms erhalten bleiben.

Gründe

Der IEEE-Standard POSIX.1-2008 enthält ähnliche Anforderungen wie der obige Abschnitt. Obwohl Daten, die in /tmp gespeichert sind, auf eine standortspezifische Weise gelöscht werden können, wird empfohlen, dass wird empfohlen, dass Dateien und Verzeichnisse in /tmp gelöscht werden zu löschen, wenn das System gebootet wird.

Die FHS fügte diese Empfehlung auf der Grundlage historischer Präzedenzfälle und gängiger Praxis, machte sie aber nicht zu einer Anforderung, da die Systemverwaltung nicht in den Anwendungsbereich dieser Norm fällt.

/var/tmp : Temporäre Dateien, die zwischen Systemneustarts erhalten bleiben

Das Verzeichnis /var/tmp wird für Programme zur Verfügung gestellt, die temporäre Dateien oder Verzeichnisse benötigen, die zwischen den Systemstarts erhalten bleiben Reboots erhalten bleiben. Daher sind Daten, die in /var/tmp gespeichert sind, beständiger als Daten in /tmp.

Dateien und Verzeichnisse, die sich in /var/tmp befinden, dürfen nicht gelöscht werden, wenn das System gebootet wird. Obwohl Daten, die in /var/tmp gespeichert sind, normalerweise standortspezifisch gelöscht werden, ist es empfehlenswert, dass Löschungen in kürzeren Abständen als /tmp zu löschen.

Auch die The Open Group Base Specifications Issue 7, Environment Variables erwähnt das Folgende:

TMPDIR Diese Variable soll den Pfadnamen eines Verzeichnisses repräsentieren, das Programmen zur Verfügung gestellt wird, die einen Platz zum Anlegen temporärer Dateien benötigen.

Kommentare (1)

Ja, /tmp ist für den allgemeinen Gebrauch. Siehe hier und hier über den Filesystem Hierarchy Standard.

/tmp/ Temporäre Dateien (siehe auch /var/tmp). Bleiben zwischen Systemneustarts oft nicht erhalten.

Mit einigen weiteren Details in der PDF-Datei.

Kommentare (0)

Sie können nicht im Voraus einen einzigen Namen für ein temporäres Verzeichnis wählen, der für jedes Linux-System geeignet ist. Tatsächlich können Sie das unter Windows auch nicht tun. Laut Wikipedia's Artikel über temporäre Ordner wird das temporäre Verzeichnis unter Windows durch die Umgebungsvariable TEMP bestimmt. Wenn Sie einfach c:Temp als temporäres Verzeichnis auf einem Windows-System verwenden würden, das TEMP auf etwas anderes gesetzt hat, würde jedes Programm, das Ihre XML-Datei zur Auswahl eines temporären Verzeichnisses verwendet, fehlschlagen.

Kurz gesagt, das temporäre Verzeichnis des Systems wird auf allen modernen Betriebssystemen, die ich kenne, von der Umgebung bestimmt, sowohl unter Windows als auch unter allen UNIX-ähnlichen Systemen. Die Festlegung eines einzigen statischen Pfads als temporäres Verzeichnis funktioniert nur, solange die Standardeinstellungen nicht geändert wurden.

Das Standardverzeichnis für temporäre Dateien in einem typischen Linux-System ist /tmp. Es ist das Äquivalent zu "C:Temp" in dem Sinne, dass es nur das standardmäßige temporäre Verzeichnis ist, nicht das universelle. Selbst wenn /tmp verfügbar ist, sollte der Wert der TEMP-Umgebungsvariable verwendet werden, wenn ein Benutzer (oder das System) diese gesetzt hat.

Sie könnten versuchen, ein temporäres Verzeichnis relativ zum Heimatverzeichnis des Benutzers zu wählen, das Sie erstellen können.

Kommentare (3)