Wo ist das temporäre Verzeichnis in Linux?

Wo ist das temporäre Verzeichnis in Linux?

Verfügt Linux über ein standardmäßiges temporäres Verzeichnis für den allgemeinen Gebrauch, wie der Windows- C:\TempOrdner? Wenn ja, wo befindet es sich? Ich habe gefundeneine SO-Frage zum tmpprogrammgesteuerten 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 /tmpVerzeichnis muss für Programme zugänglich gemacht werden, die temporäre Dateien benötigen.

Programme dürfen nicht davon ausgehen, dass Dateien oder Verzeichnisse /tmpzwischen Programmaufrufen erhalten bleiben.

Begründung

Der IEEE-Standard POSIX.1-2008 listet ähnliche Anforderungen wie der obige Abschnitt auf. Obwohl in gespeicherte Daten /tmpstandortspezifisch gelöscht werden können, wird empfohlen, Dateien und Verzeichnisse in /tmpbei 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/tmpVerzeichnis wird für Programme bereitgestellt, die temporäre Dateien oder Verzeichnisse benötigen, die zwischen Systemneustarts erhalten bleiben. Daher /var/tmpsind in gespeicherte Daten dauerhafter als Daten in /tmp.

Dateien und Verzeichnisse in /var/tmpdürfen beim Systemstart nicht gelöscht werden. Obwohl in gespeicherte Daten /var/tmpnormalerweise 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:

  1. /tmp/sollte nur für kleinere, größenbeschränkte Dateien verwendet werden; /var/tmp/sollte für alles andere verwendet werden.

  2. Daten, die einen Boot-Zyklus überstehen sollen, sollten nicht darin abgelegt werden /tmp/.

Wenn die $TMPDIRUmgebungsvariable 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_DIRdas 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 tmpfsMount (auch RAM-Laufwerk genannt) mit hervorragender Leistung
  • Es wird automatisch bereinigt

Der Nachteil tmpfsbesteht darin, dass es nur zum Speichern kleiner Dateien (PID-Dateien, Sperrdateien, Sockets usw.) verwendet werden sollte.

Antwort3

Ja, /tmp ist für den allgemeinen Gebrauch. SieheHierUndHierZum Dateisystemhierarchiestandard.

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

Einige weitere Einzelheiten sind im PDF aufgeführt.

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.

verwandte Informationen