Antworten:
/tmp
ist ein möglichst schneller (möglicherweise kleiner) Speicher mit kurzer Lebensdauer. Viele Systeme reinigen /tmp
sehr schnell - auf manchen Systemen ist es sogar als RAM-Disk gemountet. /var/tmp
befindet 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/tmp
möglicherweise im frühen Startprozess nicht verfügbar ist /var
und / oder dass /var/tmp
es sich um Mountpunkte handelt. Es ist also ein bisschen vergleichbar mit dem Unterschied zwischen /bin
und /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 /tmp
und nicht /var/tmp
für temporäre Dateien.
Ein weiterer (zukünftiger) Speicherort für temporäre Dateien unter Linux ist /dev/shm
.
/bin
und /usr/bin
sind eigentlich die gleichen in diesen Tagen (Symlinks). ;-)
/tmp
Möglicherweise wird und wird dies manchmal beim Neustart bereinigt. /var/tmp
wird zwischen Neustarts beibehalten.
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 /usr
Dateisysteme schreibgeschützt und werden würden /var
(variabel) wäre read-write. Der /tmp
Name 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/tmp
Verzeichnis ist veraltet, wird aber immer noch von einigen Programmen verwendet.
Heutzutage ist standardmäßig mehr Sicherheit eingerichtet /tmp
als g+s,+t
Berechtigungen, jedoch nicht aktiviert /var/tmp
. Außerdem /var/tmp
wird selten aus RAM oder Swap gemountet.
a+rwx+t
- und nein g+s
.
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 .