Das Erstellen temporärer Dateien oder Verzeichnisse ist eine häufige Aufgabe, die viele Linux-Befehlszeilenbenutzer ausführen. Aber wissen Sie, dass es ein dediziertes Befehlszeilentool namens mktemp gibt, mit dem Sie dies tun können?
In diesem Tutorial werden wir die Grundlagen des mktemp-Befehls anhand einiger leicht verständlicher Beispiele besprechen. Aber bevor wir das tun, ist es erwähnenswert, dass alle Beispiele hier auf einem Ubuntu 20.04 LTS-Rechner und auf Debian 10 getestet wurden.
Linux-mktemp-Befehl
Mit dem Befehl mktemp in Linux können Benutzer eine temporäre Datei oder ein temporäres Verzeichnis erstellen. Es folgt die Syntax:
mktemp [OPTION]... [TEMPLATE]
Und so erklärt es die Manpage des Tools:
Create a temporary file or directory, safely, and print its name. TEM?
PLATE must contain at least 3 consecutive 'X's in last component. If
TEMPLATE is not specified, use tmp.XXXXXXXXXX, and --tmpdir is implied.
Files are created u+rw, and directories u+rwx, minus umask restric?
tions.
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie der Befehl mktemp funktioniert.
Q1. Wie erstelle ich eine temporäre Datei mit mktemp?
Einfach. Führen Sie einfach 'mktemp' ohne jede Option aus. Sie werden sehen, dass eine temporäre Datei im Ordner /tmp/ erstellt wird.
mktemp
In meinem Fall wurde beispielsweise die folgende Ausgabe erzeugt:
/tmp/tmp.Ko6d1aX84B
Q2. Wie erstelle ich ein temporäres Verzeichnis mit mktemp?
Dies kann mit der Befehlszeilenoption -d erfolgen.
mktemp -d
In meinem Fall wurde beispielsweise die folgende Ausgabe erzeugt:
/tmp/tmp.Y8pySTB9ml
Sie sehen also, der Name spiegelt nicht die Tatsache wider, dass es sich um ein Verzeichnis handelt, aber es ist tatsächlich so.
Q3. Wie können Sie Ihrer temporären Datei/Ihrem temporären Verzeichnis einen benutzerdefinierten Namen geben?
Wie Sie vielleicht schon bemerkt haben, gibt mktemp der erstellten temporären Datei oder dem temporären Verzeichnis einen zufälligen Namen. Wenn Sie möchten, können Sie jedoch einen benutzerdefinierten Namen angeben.
Das Tool bietet eine Vorlage, die Sie verwenden können. Sie müssen lediglich einen Namen angeben, gefolgt von drei oder mehr X in Folge. Diese X's werden durch mktemp mit zufälligen Zeichen ersetzt, damit der endgültige Name der Datei oder des Verzeichnisses eindeutig ist.
Zum Beispiel habe ich den folgenden Befehl ausgeführt:
mktemp tempfileXXX
Und die folgende Datei wurde erstellt:
tempfileEgh
Beachten Sie, dass sich die auf diese Weise erzeugten Dateien im aktuellen Arbeitsverzeichnis befinden und nicht im /tmp/-Verzeichnis (was das Standardverhalten ist).
Q4. Wie füge ich ein Suffix am Ende des Datei-/Verzeichnisnamens hinzu?
Im vorherigen Abschnitt haben wir besprochen, wie Sie bei der Verwendung von mktemp einen benutzerdefinierten Namen haben. Auf diese Weise können Sie jedoch nur den Anfangsteil des Namens wie gewünscht verwenden. Was ist, wenn Sie auch ein Suffix Ihrer Wahl wünschen?
Sie werden froh sein zu wissen, dass dies auch möglich ist. Sie müssen nur die Option --suffix verwenden. Nachfolgend ein Beispiel:
mktemp tempfileXXX --suffix=HTF
Und hier ist der Name der Datei, die durch den oben erwähnten Befehl erzeugt wird:
tempfilecVkHTF
So können Sie sehen, dass das von Ihnen angegebene Suffix zum Dateinamen hinzugefügt wurde.
F5. Wie führe ich einfach einen Probelauf mit mktemp durch?
Wenn Sie möchten, dass mktemp nur einen Namen anzeigt und keine Datei/Verzeichnis erstellt, können Sie dies mit der Befehlszeilenoption -u tun.
mktemp -u
Schlussfolgerung
Abhängig von der Art Ihrer Arbeit auf der Linux-Befehlszeile kann sich der Befehl mktemp als praktisches, zeitsparendes Werkzeug für Sie erweisen. Hier, in diesem Tutorial, haben wir mehrere Befehlszeilenoptionen besprochen, die das Tool bietet. Weitere Informationen finden Sie auf der Manpage.