
Verfügt Linux über ein standardmäßiges temporäres Verzeichnis für den allgemeinen Gebrauch, wie der Windows- C:\Temp
Ordner? Wenn ja, wo befindet es sich? Ich habe gefundeneine SO-Frage zum tmp
programmgesteuerten Suchen eines Verzeichnisses, aber ich möchte vorab einen temporären Speicherort in einer XML-Konfigurationsdatei festlegen.
Antwort1
DerDateisystemhierarchiestandardVersion 3.0 sagt:
/tmp : Temporäre Dateien
Das
/tmp
Verzeichnis muss für Programme zugänglich gemacht werden, die temporäre Dateien benötigen.Programme dürfen nicht davon ausgehen, dass Dateien oder Verzeichnisse
/tmp
zwischen Programmaufrufen erhalten bleiben.Begründung
Der IEEE-Standard POSIX.1-2008 listet ähnliche Anforderungen wie der obige Abschnitt auf. Obwohl in gespeicherte Daten
/tmp
standortspezifisch gelöscht werden können, wird empfohlen, Dateien und Verzeichnisse in/tmp
bei jedem Systemstart zu löschen.FHS hat diese Empfehlung auf der Grundlage historischer Präzedenzfälle und gängiger Praxis hinzugefügt, sie jedoch nicht zur Anforderung gemacht, da die Systemadministration nicht in den Anwendungsbereich dieses Standards fällt.
/var/tmp: Temporäre Dateien, die zwischen Systemneustarts erhalten bleiben
Das
/var/tmp
Verzeichnis wird für Programme bereitgestellt, die temporäre Dateien oder Verzeichnisse benötigen, die zwischen Systemneustarts erhalten bleiben. Daher/var/tmp
sind in gespeicherte Daten dauerhafter als Daten in/tmp
.Dateien und Verzeichnisse in
/var/tmp
dürfen beim Systemstart nicht gelöscht werden. Obwohl in gespeicherte Daten/var/tmp
normalerweise standortspezifisch gelöscht werden, wird empfohlen, Löschvorgänge in weniger häufigen Abständen als durchzuführen/tmp
.
Auch derDie Open Group Base Spezifikationen Ausgabe 7, Umgebungsvariablenerwähnt Folgendes:
TMPDIR
Diese Variable soll den Pfadnamen eines Verzeichnisses darstellen, das für Programme verfügbar gemacht wird, die einen Ort zum Erstellen temporärer Dateien benötigen.
systemdhat auch hierzu ein Wort mitzureden:
/tmp/
Und/var/tmp/
sind zwei allgemein beschreibbare Verzeichnisse, die Linux-Systeme für temporäre Dateien bereitstellen. Ersteres befindet sich normalerweise auftmpsund wird daher durch RAM/Swap unterstützt und bei jedem Neustart gelöscht. Letzteres ist normalerweise ein richtiges, persistentes Dateisystem und wird daher durch physischen Speicher unterstützt. Das bedeutet:
/tmp/
sollte nur für kleinere, größenbeschränkte Dateien verwendet werden;/var/tmp/
sollte für alles andere verwendet werden.Daten, die einen Boot-Zyklus überstehen sollen, sollten nicht darin abgelegt werden
/tmp/
.Wenn die
$TMPDIR
Umgebungsvariable festgelegt ist, verwenden Sie diesen Pfad und verwenden Sie weder/tmp/
noch/var/tmp/
direkt.SehenDateihierarchie(7)für Details zu diesen beiden (und den meisten anderen) Verzeichnissen eines Linux-Systems.
Die Pfade können abgefragt werden mitsystemd-Pfad:
$ systemd-path temporary
/tmp
$ systemd-path temporary-large
/var/tmp
FreeBSD,NetBSD,OpenBSDUndLibellehabe etwas ähnliches beschrieben in derhier(7)Manpage.
Antwort2
Dies ist eine alte Frage, daher gibt es heute eine andere Option. Linux-Distributionen, die auf systemd
(90 % von ihnen) basieren, können jetzt $XDG_RUNTIME_DIR
das Verzeichnis (XDG-Basisverzeichnisspezifikation), um bestimmte Arten von temporären Dateien zu speichern. Es befindet sich im Allgemeinen unter /run/user/$uid
.
- Dies ist ein Benutzerverzeichnis mit
700
- Dateien privat halten - Dies ist ein
tmpfs
Mount (auch RAM-Laufwerk genannt) mit hervorragender Leistung - Es wird automatisch bereinigt
Der Nachteil tmpfs
besteht darin, dass es nur zum Speichern kleiner Dateien (PID-Dateien, Sperrdateien, Sockets usw.) verwendet werden sollte.
Antwort3
Antwort4
Die ursprüngliche Frage war: Verfügt Linux über ein standardmäßiges temporäres Verzeichnis? Wenn ja, wo befindet es sich? Die temporären Ordner befinden sich unter: Dateisystem/tmp und Dateisystem/var/tmp. Der Inhalt von /tmp kann 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 normalerweise solche, die von einer App heruntergeladen werden, um die App selbst nur zu diesem Zeitpunkt zu unterstützen – und daher nach der Ausführung der App nicht mehr benötigt werden. Der Ordner /var/tmp sollte überhaupt nicht berührt werden.