Wo ist das temporäre Verzeichnis in Linux?


63

Verfügt Linux über ein temporäres Standardverzeichnis für den allgemeinen Gebrauch, wie z. B. den Windows- C:\TempOrdner? Wenn ja, wo befindet es sich? Ich habe eine SO-Frage zum tmpprogrammgesteuerten Suchen eines Verzeichnisses gefunden , möchte jedoch vorab einen temporären Speicherort in einer XML-Konfigurationsdatei festlegen.


1
Ich weiß, das sieht nach einer sehr einfachen Frage aus, aber ich konnte durch Suchen keine klare, einfache Antwort finden. Viele der Ergebnisse, die ich erhielt, betrafen programmspezifische temporäre Verzeichnisse / Dateien. Ich habe mehrere Verweise darauf gesehen /tmp, aber sie waren sich nicht sicher, ob dies Standard für Linux ist oder nur eine übliche Konvention.
Pops

5
Windows C:\Tempist mit Sicherheit kein Standard. Windows 95 hatte bereits darauf %TEMP%hingewiesen C:\WINDOWS\Temp.
Grawity

Antworten:


91

Der Filesystem Hierarchy Standard Version 3.0 besagt:

/ tmp: Temporäre Dateien

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

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

Begründung

Der IEEE-Standard POSIX.1-2008 listet Anforderungen auf, die dem obigen Abschnitt ähneln. Obwohl in gespeicherte Daten /tmpmöglicherweise ortsspezifisch gelöscht werden, wird empfohlen, Dateien und Verzeichnisse, die sich in /tmpbefinden, bei jedem Systemstart zu löschen.

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.

/ var / tmp: Temporäre Dateien, die zwischen Systemneustarts erhalten bleiben

Das /var/tmpVerzeichnis wird für Programme zur Verfügung gestellt, die temporäre Dateien oder Verzeichnisse benötigen, die zwischen Systemneustarts erhalten bleiben. Daher sind Daten, die in gespeichert /var/tmpsind, beständiger als Daten in /tmp.

Dateien und Verzeichnisse in /var/tmpdürfen beim Systemstart nicht gelöscht werden. Obwohl in gespeicherte Daten in der /var/tmpRegel ortsspezifisch gelöscht werden, wird empfohlen, dass Löschvorgänge in einem Intervall erfolgen, das weniger häufig ist als /tmp.

In der Open Group Base-Spezifikation, Ausgabe 7, Umgebungsvariablen wird außerdem Folgendes erwähnt:

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


Es ist schwer, mit dem Standard zu streiten. Vielen Dank!
Pops

11

Dies ist eine alte Frage, daher gibt es heute eine andere Option. Linux-Distributionen, auf systemddie sich 90% stützen, können jetzt $XDG_RUNTIME_DIRVerzeichnisse ( XDG Base Directory Specification ) zum Speichern bestimmter temporärer Dateitypen verwenden. Es befindet sich in der Regel in /run/user/$uid. Dies ist ein Benutzerverzeichnis mit 700Berechtigungen, die eine bessere Sicherheit bieten. Dies ist ein tmpfsMount, der Leistung bietet. Der Nachteil tmpfsist, dass es nur zur Aufbewahrung kleiner Dateien und Sockets verwendet werden sollte.

Ich betrachte es als eine Ehe von /tmpund /var/run.


Sicher, die Technologie hat sich seit 5 Jahren verbessert
am

10

Ja / tmp ist für den allgemeinen Gebrauch. Siehe hier und hier Auf dem Dateisystem-Hierarchie-Standard.

/ tmp / Temporäre Dateien (siehe auch / var / tmp). Wird zwischen Systemneustarts häufig nicht beibehalten.

Mit einigen weiteren Details im PDF.


2

Sie können keinen einzigen temporären Verzeichnisnamen im Voraus auswählen, der für ein Linux-System geeignet ist. Tatsächlich können Sie das auch unter Windows nicht tun. Laut Wikipedia- Artikel zu temporären Ordnern wird das temporäre Verzeichnis unter Windows durch die Umgebungsvariable TEMP bestimmt. Wenn Sie einfach c:\Tempein temporäres Verzeichnis auf einem Windows-System verwenden, das TEMP auf einen anderen Wert setzt, schlägt jedes Programm fehl, das Ihre XML-Datei zur Auswahl eines temporären Verzeichnisses verwendet.

Kurz gesagt, das temporäre Systemverzeichnis wird von der Umgebung auf allen mir bekannten modernen Betriebssystemen bestimmt, einschließlich Windows und jedem UNIX-ähnlichen System. Das Festlegen eines einzelnen statischen Pfads als temporäres Verzeichnis funktioniert nur, solange die Standardeinstellungen nicht geändert wurden.

Auf jeden Fall ist das temporäre Standardverzeichnis in einem typischen Linux-System /tmp. Dies entspricht C:\Tempin dem Sinne, dass es sich nur um das temporäre Standardverzeichnis handelt, nicht um ein universelles Verzeichnis. Auch wenn /tmpverfügbar, sollte stattdessen der Wert dieser Variablen verwendet werden, wenn ein Benutzer (oder das System) die TEMP-Umgebungsvariable festgelegt hat.

Sie können versuchen, ein temporäres Verzeichnis relativ zum Ausgangsverzeichnis des Benutzers auszuwählen, das Sie erstellen können.


In meinem Fall halte ich es für eine sichere Annahme, dass die Standardeinstellungen noch vorhanden sind, aber dies ist auf jeden Fall gut zu bedenken.
Pops

Einige Programme wie bash, gcc, inkscape oder lynx verwenden die TMPDIRUmgebungsvariable.
Cristian Ciupitu

@ Ryan, warum ist /tmpdie Preside- Over-Temp-Variable?
Pacerier

0

Die ursprüngliche Frage lautete: Verfügt Linux über ein temporäres Standardverzeichnis? Wenn ja, wo befindet es sich? Die tmp-Ordner befinden sich unter: Dateisystem / tmp & Dateisystem / var / tmp Der Inhalt von / tmp kann gelöscht werden - wenn Sie wissen, welche Dateien / Ordner von verschiedenen Apps auf einem "nach Bedarf" benötigt werden / nicht benötigt werden. Basis. Nicht benötigte Dateien sind normalerweise solche, die von einer App heruntergeladen werden, um die App selbst nur zu diesem Zeitpunkt zu vereinfachen. Sie sind daher nach der Ausführung der App nicht mehr erforderlich. Der Ordner / var / tmp sollte überhaupt nicht berührt werden.


1
Diese Antwort enthält nicht mehr Informationen als die akzeptierte Antwort und ist daher völlig nutzlos.
zx485
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.