Was ist der Unterschied zwischen / tmp und / var / tmp?

Antworten:

115

/tmpist ein möglichst schneller (möglicherweise kleiner) Speicher mit kurzer Lebensdauer. Viele Systeme reinigen /tmpsehr schnell - auf manchen Systemen ist es sogar als RAM-Disk gemountet. /var/tmpbefindet sich normalerweise auf einer physischen Festplatte, ist größer und kann temporäre Dateien länger speichern. Einige Systeme reinigen auch /var/tmp, aber seltener.

Beachten Sie auch, dass /var/tmpmöglicherweise im frühen Startprozess nicht verfügbar ist /varund / oder dass /var/tmpes sich um Mountpunkte handelt. Es ist also ein bisschen vergleichbar mit dem Unterschied zwischen /binund /usr/bin. Ersteres ist während des frühen Startvorgangs verfügbar - letzteres, nachdem das System alles gemountet hat. Daher werden die meisten Boot-Skripte verwendet /tmpund nicht /var/tmpfür temporäre Dateien.

Ein weiterer (zukünftiger) Speicherort für temporäre Dateien unter Linux ist /dev/shm.

Nils
quelle
4
Ich finde es ein bisschen ironisch, dass /binund /usr/binsind eigentlich die gleichen in diesen Tagen (Symlinks). ;-)
Felix Schwarz
2
@Felix Noch nicht auf allen Distributionen. Aber Linux bewegt sich so. Wahrscheinlich, weil die Festplatten immer größer werden.
Nils
27

/tmpMöglicherweise wird und wird dies manchmal beim Neustart bereinigt. /var/tmpwird zwischen Neustarts beibehalten.

Siehe den Wikipedia-Artikel über die FHS .

njsg
quelle
1
/ tmp kann sogar die von einem Prozess erstellten Dateien direkt nach dem Beenden bereinigen!
Osvein
15

Sie haben den gleichen Zweck und die gleiche Funktionalität. Jede UNIX / Linux-Version behandelt diese Verzeichnisse unterschiedlich. Historisch gesehen , vor dem Aufkommen der RAM / Swap - basierte Dateisysteme, mußten Sie scheibenlose Systeme , wo die /und /usrDateisysteme schreibgeschützt und werden würden /var(variabel) wäre read-write. Der /tmpName wäre eine symbolische Verknüpfung zu /var/tmp. Später gerieten festplattenlose Systeme aus der Mode, der Speicherplatz wurde billiger (um größere Root-Dateisysteme zu haben) und die Technologie erlaubte Dateisysteme, die aus dem Speicher anstatt von der Festplatte gemountet wurden. Das /var/tmpVerzeichnis ist veraltet, wird aber immer noch von einigen Programmen verwendet.

Heutzutage ist standardmäßig mehr Sicherheit eingerichtet /tmpals g+s,+tBerechtigungen, jedoch nicht aktiviert /var/tmp. Außerdem /var/tmpwird selten aus RAM oder Swap gemountet.

Arcege
quelle
Auf meinen Debian- und Fedora-Systemen haben / tmp und / var / tmp den gleichen Modus - a+rwx+t- und nein g+s.
Sourcejedi
12

POSIX-Basisspezifikationen, Ausgabe 7, ab / tmp :

Das folgende Verzeichnis muss auf konformen Systemen vorhanden sein und wie beschrieben verwendet werden:

/ tmp

Ein Verzeichnis, das für Anwendungen verfügbar gemacht wird, die einen Speicherort zum Erstellen temporärer Dateien benötigen. Anwendungen dürfen Dateien in diesem Verzeichnis erstellen, jedoch nicht davon ausgehen, dass diese Dateien zwischen den Aufrufen der Anwendung aufbewahrt werden.

Der Dateihierarchie-Standard 2.3 unter / tmp :

Das Verzeichnis / tmp muss für Programme verfügbar sein, die temporäre Dateien benötigen.

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

Begründung

Der IEEE-Standard P1003.2 (POSIX, Teil 2) stellt ähnliche Anforderungen wie im obigen Abschnitt.

In / tmp gespeicherte Daten können zwar standortspezifisch gelöscht werden, es wird jedoch empfohlen, Dateien und Verzeichnisse in / tmp zu löschen, wenn das System gestartet wird.

FHS fügte diese Empfehlung auf der Grundlage historischer Präzedenzfälle und allgemeiner Praxis hinzu, machte sie jedoch nicht zur Anforderung, da die Systemadministration nicht in den Anwendungsbereich dieser Norm fällt.

POSIX gibt / var / tmp nicht an . Die FHS macht jedoch :

Das Verzeichnis / var / tmp wird für Programme verfügbar gemacht, die temporäre Dateien oder Verzeichnisse benötigen, die zwischen Systemneustarts erhalten bleiben. Daher sind Daten, die in / var / tmp gespeichert sind, beständiger als Daten in / tmp .

Dateien und Verzeichnisse in / var / tmp dürfen beim Systemstart nicht gelöscht werden. In / var / tmp gespeicherte Daten werden in der Regel ortsspezifisch gelöscht. Es wird jedoch empfohlen, dass Löschvorgänge in einem geringeren Intervall als in / tmp erfolgen .

osvein
quelle
Ahhh, ich liebe Dokumentation. Jetzt weiß ich, dass ich es weiß und warum ich glaube, dass ich es weiß. Meine erkenntnistheoretischen Bedürfnisse sind im Moment so befriedigt.
Stephen C