Der Befehl mkdir erstellt neue Verzeichnisse auf der Kommandozeile. Der Name steht für „make directory".
Syntax
mkdir [OPTIONEN] VERZEICHNIS...
OPTIONEN– Flags, die das Verhalten ändern.VERZEICHNIS– Ein oder mehrere Namen für die neuen Verzeichnisse.
Ein Verzeichnis erstellen
Gib den gewünschten Namen als Argument an:
mkdir projekte
Das Verzeichnis wird im aktuellen Arbeitsverzeichnis erstellt. Mit ls -l kannst du prüfen, ob es funktioniert hat:
ls -l
drwxr-xr-x 2 user user 4096 Jan 16 10:00 projekte
Verzeichnis an einem anderen Ort erstellen
Um ein Verzeichnis außerhalb des aktuellen Arbeitsverzeichnisses zu erstellen, gib den vollständigen Pfad an:
mkdir /tmp/testverzeichnis
Das funktioniert mit absoluten und relativen Pfaden.
Fehlende Schreibrechte
Ohne ausreichende Berechtigungen schlägt der Befehl fehl:
mkdir /root/geheim
mkdir: das Verzeichnis '/root/geheim' kann nicht erstellt werden: Keine Berechtigung
Verschachtelte Verzeichnisse mit -p erstellen
Standardmäßig erwartet mkdir, dass alle übergeordneten Verzeichnisse bereits existieren. Dieser Befehl schlägt fehl:
mkdir /home/user/Musik/Rock/Metal
mkdir: das Verzeichnis '/home/user/Musik/Rock/Metal' kann nicht erstellt werden: Datei oder Verzeichnis nicht gefunden
Die Option -p (parent) löst das Problem. Sie erstellt alle fehlenden Verzeichnisse im Pfad automatisch:
mkdir -p /home/user/Musik/Rock/Metal
Ein weiterer Vorteil von -p: Der Befehl gibt keinen Fehler aus, wenn das Verzeichnis bereits existiert. Das ist nützlich in Skripten, wo du sicherstellen willst, dass ein Verzeichnis vorhanden ist.
Berechtigungen direkt setzen mit -m
Mit der Option -m legst du die Berechtigungen beim Erstellen fest. Die Syntax entspricht dem chmod-Befehl:
mkdir -m 700 privat
Das erstellt ein Verzeichnis, auf das nur der Eigentümer Zugriff hat (Lesen, Schreiben, Ausführen). Ohne -m werden die Berechtigungen durch die umask bestimmt – meistens 755 oder 775.
Mehrere Verzeichnisse gleichzeitig erstellen
Gib mehrere Namen an, getrennt durch Leerzeichen:
mkdir dokumente bilder videos
Komplexe Verzeichnisstrukturen mit Brace Expansion
Mit der Bash-Brace-Expansion erstellst du verschachtelte Strukturen in einem Befehl:
mkdir -p projekt/{src,tests,docs}
Das erstellt:
projekt/
├── docs
├── src
└── tests
Auch tiefere Verschachtelungen sind möglich:
mkdir -p Musik/{Jazz,Rock/{Punk,Metal},Klassik}
Ausführliche Ausgabe mit -v
Die Option -v (verbose) zeigt jeden Erstellungsvorgang an:
mkdir -v backup logs
mkdir: Verzeichnis 'backup' wurde erstellt
mkdir: Verzeichnis 'logs' wurde erstellt
Das hilft bei der Fehlersuche oder wenn du in Skripten protokollieren willst, was passiert.
Zusammenfassung
| Option | Bedeutung |
|---|---|
-p | Erstellt übergeordnete Verzeichnisse automatisch |
-m MODUS | Setzt Berechtigungen beim Erstellen |
-v | Zeigt erstellte Verzeichnisse an |
Der Befehl mkdir gehört zu den Grundlagen der Kommandozeile. In Kombination mit Brace Expansion und der Option -p lassen sich auch komplexe Verzeichnisstrukturen schnell anlegen.