Wo ist das temporäre Verzeichnis in Linux?

Hat Linux ein temporäres Standardverzeichnis für den allgemeinen Gebrauch, wie den Ordner C:\Temp von Windows? Wenn ja, wo befindet es sich? Ich habe eine SO-Frage zum programmgesteuerten Auffinden eines tmp - Verzeichnisses, aber ich möchte im Voraus einen temporären Speicherort in einer XML-Konfigurationsdatei festlegen.

Author: Community, 2011-09-06

5 answers

Der Dateisystemhierarchie-Standard Version 3.0 besagt:

/tmp : Temporäre Dateien

Das Verzeichnis /tmp muss für Programme verfügbar gemacht werden, die temporäre Dateien.

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

Begründung

IEEE-POSIX-standard.1-2008 listet ähnliche Anforderungen wie oben auf Abschnitt. Obwohl in /tmp gespeicherte Daten standortspezifisch gelöscht werden können, wird empfohlen, Dateien und Verzeichnisse in /tmp zu löschen wann immer das System gestartet wird.

FHS Hinzugefügt, diese Empfehlung auf der Grundlage von historischen Präzedenzfall und gemeinsame praxis, aber nicht machen es eine anforderung, weil systemadministration ist nicht im Rahmen dieser Norm.

/var / tmp: Temporäre Dateien zwischen System erhalten Neustarts

Das Verzeichnis /var/tmp ist für Programme verfügbar, die temporäre Dateien oder Verzeichnisse, die zwischen dem System erhalten bleiben Neustart. Daher sind in /var/tmp gespeicherte Daten persistenter als Daten in /tmp.

Dateien und Verzeichnisse in /var/tmp dürfen nicht gelöscht werden, wenn die system gebootet wird. Obwohl Daten, die in /var/tmp gespeichert sind, normalerweise gelöscht in einer site-spezifischen weise, es wird empfohlen, dass löschungen weniger häufig auftreten Intervall als /tmp.

Auch die Die Open Group Base Specifications Ausgabe 7, Umgebungsvariablen erwähnt Folgendes:

TMPDIR Diese Variable muss einen Pfadnamen eines Verzeichnisses darstellen, das für Programme verfügbar ist, die einen Platz zum Erstellen temporärer Dateien benötigen.

 111
Author: Cristian Ciupitu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-06-18 19:10:04

Dies ist eine alte Frage, daher gibt es heute eine andere Option. Linux-Distributionen, die auf systemd (das sind 90% von ihnen) angewiesen sind, können jetzt $XDG_RUNTIME_DIR directory (XDG Base Directory Specification) verwenden, um bestimmte Arten von temporären Dateien zu speichern. Es befindet sich im Allgemeinen bei /run/user/$uid. Dies ist ein Verzeichnis pro Benutzer mit 700 Berechtigungen, das eine bessere Sicherheit bietet. Dies ist ein tmpfs Mount, der Leistung bietet. Der Nachteil von tmpfs ist, dass es nur zum Aufbewahren kleiner Dateien und Sockets.

Ich betrachte es als eine Ehe von /tmp und /var/run.

 14
Author: oᴉɹǝɥɔ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-01-15 15:23:28

Ja, /tmp ist für den Allgemeinen Gebrauch. Siehe hier und hier Im Dateisystemhierarchie-Standard.

/ tmp / Temporäre Dateien (siehe auch / var / tmp). Oft nicht zwischen Systemneustarts erhalten.

Mit einigen weiteren Details im PDF.

 11
Author: OldWolf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-09-06 20:13:09

Sie können keinen einzigen temporären Verzeichnisnamen im Voraus auswählen, der für jedes Linux-System funktioniert. Tatsächlich können Sie das auch unter Windows nicht tun. Laut dem Wikipedia-Artikel über temporäre Ordner wird das temporäre Verzeichnis unter Windows durch die Umgebungsvariable TEMP bestimmt. Wenn Sie einfach c:\Temp als temporäres Verzeichnis auf einem Windows-System verwenden, das TEMP auf etwas anderes setzt, schlägt jedes Programm fehl, das Ihre XML-Datei zur Auswahl eines temporären Verzeichnisses verwendet.

Kurz gesagt, das temporäre Verzeichnis des Systems wird von der Umgebung auf allen modernen Betriebssystemen bestimmt, die ich kenne, 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.

Jedenfalls ist das temporäre Standardverzeichnis in einem typischen Linux-System /tmp. Es ist das Äquivalent von C:\Temp in dem Sinne, dass es nur das temporäre Standardverzeichnis ist, nicht universell. Selbst wenn /tmp verfügbar ist, sollte stattdessen der Wert dieser Variablen verwendet werden, wenn ein Benutzer (oder das System) die temporäre Umgebungsvariable festgelegt hat.

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

 3
Author: Ryan C. Thompson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-09-06 20:23:58

Die erste Frage war: Hat Linux ein temporäres Standardverzeichnis? Wenn ja, wo befindet es sich? Die tmp-Ordner befinden sich unter: File System / tmp & Dateisystem / var / tmp Der / tmp-Inhalt kann gelöscht werden-wenn Sie wissen, welche Dateien/Ordner von verschiedenen Apps "nach Bedarf" benötigt/nicht benötigt werden. Unrequired Dateien sind in der Regel diejenigen, die von einer App heruntergeladen, um die App selbst an diesem Punkt nur zu erleichtern - daher nicht weiter erforderlich, nachdem die app durchgeführt hat. Der Ordner /var / tmp sollte überhaupt nicht berührt werden.

 0
Author: FranklynA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-07-27 13:18:41