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

Wo befindet sich das temporäre Verzeichnis in Linux?

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

Antworten (5)

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

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.

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

Begründung

Der IEEE-Standard POSIX.1-2008 listet ähnliche Anforderungen wie der obige Abschnitt auf. Obwohl in /tmp gespeicherte Daten standortspezifisch gelöscht werden können, wird empfohlen, dass Dateien und Verzeichnisse, die sich in /tmp befinden, bei jedem Systemstart gelöscht werden.

Die FHS fügte diese Empfehlung aufgrund historischer Präzedenzfälle und gängiger Praxis hinzu, machte sie aber nicht zu einer Anforderung, da die Systemadministration nicht in den Anwendungsbereich dieses Standards 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 Systemneustarts erhalten bleiben. Daher sind die in /var/tmp gespeicherten Daten beständiger als die 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, in der Regel standortspezifisch gelöscht werden, wird empfohlen, dass Löschungen in einem weniger häufigen Intervall als /tmp erfolgen.

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

TMPDIR Diese Variable soll einen Pfadnamen eines Verzeichnisses darstellen, das für Programme zur Verfügung gestellt wird, die einen Platz zum Anlegen temporärer Dateien benötigen.

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

Dies ist eine alte Frage, daher gibt es heute eine weitere Möglichkeit. Linux-Distributionen, die auf systemd angewiesen sind (das sind 90% von ihnen), können jetzt das Verzeichnis $XDG_RUNTIME_DIR XDG Base Directory Specification ) verwenden, um bestimmte Arten von temporären Dateien zu speichern. Es befindet sich im Allgemeinen unter /run/user/$uid. Dies ist ein Pro-Benutzer-Verzeichnis mit 700-Berechtigungen, das eine bessere Sicherheit bietet. Dies ist ein tmpfs-Mount, der Leistung bietet. Der Nachteil von tmpfs ist, dass es nur zur Aufbewahrung kleiner Dateien und Sockets verwendet werden sollte.

Ich betrachte es als eine Vermählung von /tmp und /var/run.

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

Ja, /tmp ist für den allgemeinen Gebrauch bestimmt. Siehe hier und hier zum Dateisystem-Hierarchiestandard.

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

Mit einigen weiteren Details, die im PDF aufgeführt sind.

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

Sie können nicht im Voraus einen einzigen temporären Verzeichnisnamen wählen, der für jedes Linux-System funktioniert. Tatsächlich können Sie das auch unter Windows nicht tun. Laut Wikipedia’s Artikel über temporäre Verzeichnisse 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, dann 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, einschließlich Windows und allen UNIX-ähnlichen Systemen. Das Einstellen eines einzelnen statischen Pfades als temporäres Verzeichnis funktioniert nur, solange die Voreinstellungen nicht geändert wurden.

Wie auch immer, das temporäre Standardverzeichnis 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 universell. Selbst wenn /tmp verfügbar ist, sollte, wenn ein Benutzer (oder das System) die Umgebungsvariable TEMP gesetzt hat, stattdessen der Wert dieser Variable verwendet werden.

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

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

Die Ausgangsfrage war: Gibt es unter Linux ein standardmäßiges temporäres Verzeichnis. Wenn ja, wo befindet es sich? Der/die tmp-Ordner befinden sich unter: Dateisystem/tmp & Dateisystem/var/tmp Der Inhalt von /tmp könnte gelöscht werden - wenn Sie wissen, welche Dateien/Ordner von verschiedenen Apps “nach Bedarf” benötigt/nicht benötigt werden. Nicht benötigte Dateien sind in der Regel solche, die von einer App heruntergeladen werden, um die App selbst nur zu diesem Zeitpunkt zu unterstützen - also nicht weiter benötigt werden, nachdem die App ausgeführt wurde. Der Ordner /var/tmp sollte überhaupt nicht angefasst werden.