# Temporäre Datei

Eine Temporäre Datei (im Computer-Slang oft auch Tempfile bzw. temp, aus engl. temporary file, genannt) ist eine Datei, die Software bzw. Computerprogrammen, beispielsweise dem Betriebssystem oder Anwendungsprogrammen, zur zeitlich begrenzten Speicherung von Daten dient. Die Auslagerung der Daten erfolgt dabei entweder, um den Arbeitsspeicher des Computers zu entlasten, oder um die Verfügbarkeit der Daten auch nach Beendigung des erstellenden Programms hinaus zu garantieren, oder um weiteren Programmen eine Nutzung dieser Daten zu ermöglichen. Mit Einführung des virtuellen Speichers ist eine Entlastung des Arbeitsspeichers großteils nicht mehr notwendig, allerdings ist in der Vergangenheit auch bei einigen Anwendungen das zu verarbeitende Datenvolumen gewachsen, beispielsweise bei der Bildverarbeitung. Nicht immer werden temporäre Dateien vom erstellenden Computerprogramm selbst auch wieder gelöscht.

## DOS

Unter PC-kompatiblem DOS gibt es keine Norm, wie DOS-Programme temporäre Dateien nutzen sollen. Jedes Programm hat unter DOS daher seine eigene Vorgehensweise entwickelt. Dies ist auch bei den verwendeten Dateinamenserweiterungen zu beobachten. So wird zwar .$$$ als mögliche Erweiterung angegeben, die jedoch noch lange nicht von allen Programmen auch genutzt wurde.

## Windows

Unter Windows werden temporäre Dateien häufig durch die Dateinamenserweiterung .tmp kenntlich gemacht. Außerdem werden sie häufig spezifisch für den angemeldeten Benutzer gespeichert, das heißt, für jeden Benutzer gibt es ein separates Verzeichnis („Ordner“), in dem diese Dateien abgelegt werden. Standardmäßig wird hierbei ein Unterverzeichnis im Benutzerverzeichnis verwendet, das durch die Umgebungsvariable USERPROFILE oder die Windows-Funktionen GetTempPath* ermittelbar ist. (Dieses Verzeichnis ist u. U. im Windows-Explorer nicht sichtbar, da es sich dabei um einen „versteckten Ordner“ handeln kann, der durch Anpassung der entsprechenden Einstellung – englisch als option bezeichnet – sichtbar gemacht werden kann.) Eine Anpassung des Speicherorts dieser Dateien ist zudem grundsätzlich möglich (Konfiguration über die Registry).
Zur Vereinheitlichung wurden dazu anfangs (im Laufe der Windows-Entwicklung) die sogenannten Umgebungsvariablen TEMP und TMP eingeführt, über welche eine Konfiguration des Verzeichnisses für „temporäre Dateien“ möglich ist. Einige Anwendungen beziehen sich noch auf diese Definitionen. Dieses Verzeichnis kann zudem auch über die (ebenso erst im Laufe der Weiterentwicklung eingeführte API-)Funktion Get­Temp­File­Name abgefragt werden.
Vor der vereinheitlichenden Einführung temporärer Dateien wurden diese von den Anwendungen auch in eigenen (anwendungsbezogenen) Verzeichnissen oder im jeweils aktuellen Verzeichnis gespeichert, so dass es insgesamt schwerer war, einen Überblick zu erlangen, um nicht mehr benötigte Dateien vollständig zu bereinigen.

## Linux, UNIX

Der Filesystem Hierarchy Standard für temporäre Dateien unterscheidet in Linux zwei Arten:

### beim Neustart löschbar

    im Verzeichnis /tmp werden jene Dateien abgelegt, die nach einem Neustart des Systems zweifelsfrei nicht mehr benötigt werden und während des Systemstarts geleert werden können

### Neustart überdauernd

    im Verzeichnis /var/tmp jene Dateien, die auch über einen Neustart des Systems hinaus nutzbar sein sollen.
Unvorsichtiger Umgang mit temporären Dateien kann insbesondere auf Mehrbenutzersystemen, die symbolische Verknüpfungen unterstützen, zu einer Sicherheitslücke führen: Ist der Name einer temporären Datei vorhersagbar, kann unter diesem Namen eine symbolische Verknüpfung abgelegt werden. Wird anschließend ein Programm ausgeführt, das unter demselben Namen eine temporäre Datei erzeugt, kann es zum Datenverlust oder zur Erweiterung von Benutzerrechten kommen. Deshalb enthalten temporäre Dateinamen in der Regel eine zufällig generierte Zeichenkombination.