Bash:
Erstellung einer temporären Datei
Anleitung:
Erstellen einer temporären Datei mit mktemp
:
tempfile=$(mktemp)
echo "Temporäre Datei angelegt: $tempfile"
Ausgabe:
Temporäre Datei angelegt: /tmp/tmp.IkXMlvM7ck
Eine temporäre Datei in einem bestimmten Verzeichnis:
tempfile=$(mktemp /mein/tempdir/XXXXXX)
echo "Temporäre Datei im benutzerdefinierten Verzeichnis: $tempfile"
Ausgabe:
Temporäre Datei im benutzerdefinierten Verzeichnis: /mein/tempdir/nmJf6H
Sicherer Aufräummechanismus mit trap
:
tempfile=$(mktemp)
trap "rm -f $tempfile" EXIT
echo "Arbeite mit temporärer Datei: $tempfile"
# Hier deine Skript-Operationen
Das Skript löscht die temporäre Datei automatisch beim Beenden, selbst bei Fehlern.
Hintergrundinfos:
Die mktemp
-Utility kam als sichere Alternative zur manuellen Dateinamensgenerierung auf, um Race Conditions und Sicherheitsprobleme zu vermeiden. Alternativ können ältere Methoden wie das Anhängen von $$
(die PID des Skripts) an Dateinamen genutzt werden, sind aber unsicher.
Ein Blick unter die Haube zeigt, dass mktemp
eine einzigartige Zeichenkette generiert, oft durch Kombination von Zufallszahlen und Zeitstempeln, um Kollisionen zu vermeiden.
Sollen nur temporäre Daten im Speicher vorgehalten werden, kann stattdessen tmpfs
verwendet werden, ein temporäres Filesystem im Arbeitsspeicher.
Weiterführende Links:
- GNU Coreutils Dokumentation zu
mktemp
: https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html trap
-Befehl: https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html#index-trap