Übersicht
mktemp erstellt temporäre Dateien oder Verzeichnisse mit unvorhersehbaren und eindeutigen Namen, um Sicherheit und Konfliktprobleme zu vermeiden. Es wird häufig in Shell-Skripten verwendet, wenn sicherer temporärer Speicherplatz benötigt wird, und der Pfad zur erstellten Datei/Verzeichnis wird auf der Standardausgabe zurückgegeben.
Hauptmerkmale
- Erstellung eindeutiger und unvorhersehbarer Namen
- Schutz vor Sicherheitslücken (Schutz vor Race-Condition-Angriffen)
- Auswahl zwischen der Erstellung temporärer Dateien oder temporärer Verzeichnisse
- Geeignet für die Automatisierung von Shell-Skripten
Wichtige Optionen
Der Befehl mktemp bietet mehrere wichtige Optionen zur Steuerung der Erstellung temporärer Dateien oder Verzeichnisse.
Erstellungstyp
Namensvorlage
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`mktemp` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Zeigt verschiedene Möglichkeiten, temporäre Dateien und Verzeichnisse mit dem Befehl mktemp zu erstellen und sie in Skripten zu verwenden.
Standardmäßige temporäre Datei erstellen
mktemp
Erstellt eine temporäre Datei mit einem eindeutigen Namen im Standard-Temporärverzeichnis (normalerweise /tmp).
Temporäres Verzeichnis erstellen
mktemp -d
Erstellt ein temporäres Verzeichnis mit der Option -d.
Temporäre Datei mit einem bestimmten Muster erstellen
mktemp /tmp/my_app.XXXXXX
Erstellt eine temporäre Datei mit dem angegebenen Pfad und Muster. 'X' wird durch eindeutige Zeichen ersetzt.
Temporäre Datei in einem Skript verwenden und automatisch löschen
TEMP_FILE=$(mktemp)
if [ -z "$TEMP_FILE" ]; then
echo "Fehler beim Erstellen der temporären Datei"
exit 1
fi
trap 'rm -f "$TEMP_FILE"' EXIT
echo "Pfad der temporären Datei: $TEMP_FILE"
echo "Hallo von mktemp!" > "$TEMP_FILE"
cat "$TEMP_FILE"
# $TEMP_FILE wird beim Beenden des Skripts automatisch gelöscht.
Speichert den Pfad der erstellten temporären Datei in einer Variablen und verwendet den Befehl trap, um die Datei beim Beenden des Skripts automatisch zu löschen.
Temporäres Verzeichnis in einem Skript verwenden und automatisch löschen
TEMP_DIR=$(mktemp -d)
if [ -z "$TEMP_DIR" ]; then
echo "Fehler beim Erstellen des temporären Verzeichnisses"
exit 1
fi
trap 'rm -rf "$TEMP_DIR"' EXIT
echo "Pfad des temporären Verzeichnisses: $TEMP_DIR"
echo "Dies ist eine Testdatei." > "$TEMP_DIR/test.txt"
ls -l "$TEMP_DIR"
cat "$TEMP_DIR/test.txt"
# $TEMP_DIR wird beim Beenden des Skripts automatisch gelöscht.
Speichert den Pfad des erstellten temporären Verzeichnisses in einer Variablen und verwendet den Befehl trap, um das Verzeichnis beim Beenden des Skripts automatisch zu löschen.
Tipps & Hinweise
Nützliche Tipps und zu beachtende Punkte bei der Verwendung von mktemp.
Aufräumen nach Gebrauch erforderlich
mktemp erstellt temporäre Dateien, löscht sie aber nicht automatisch. Sie müssen die erstellten Dateien oder Verzeichnisse explizit mit dem Befehl `rm` löschen, wenn das Skript beendet wird. Die Verwendung des Befehls `trap` ermöglicht eine automatische Bereinigung, unabhängig davon, wie das Skript beendet wird.
- Datei: `rm "$TEMP_FILE"`
- Verzeichnis: `rm -rf "$TEMP_DIR"`
- Automatische Bereinigung: `trap 'rm -rf "$TEMP_PATH"' EXIT`
Sicherheitsüberlegungen
mktemp ist sicher konzipiert, um Race-Condition-Angriffe bei der Erstellung temporärer Dateien zu verhindern. Wenn Sie jedoch sensible Informationen in den erstellten Dateien speichern, sollten Sie die Dateiberechtigungen entsprechend festlegen (z. B. `chmod 600 $TEMP_FILE`), um den Zugriff durch andere Benutzer zu verhindern.
Bei Verwendung von Vorlagen
Die Vorlagenzeichenfolge muss mindestens drei 'X'-Zeichen enthalten. Je mehr 'X'-Zeichen vorhanden sind, desto höher ist die Eindeutigkeit des generierten Namens.
- Empfohlen: XXXXXX (6 oder mehr)
- Minimum: XXX (3)