Linux / Befehl mkdir: Verzeichnisse und übergeordnete Pfade erstellen
mkdir erstellt Verzeichnisse. Mit -p legt es fehlende übergeordnete Verzeichnisse an und akzeptiert bereits vorhandene Verzeichnisse; prüfen Sie Pfad und Berechtigungen trotzdem ausdrücklich.
Die Beispiele verwenden das Verhalten von GNU Coreutils. Prüfen Sie mkdir --help, man mkdir und die Dokumentation Ihrer Distribution, wenn Portabilität oder eine versionsspezifische Option wichtig ist.
Ergänzende Befehle und Anwendungsfälle finden Sie in Wesentliche Linux-Befehle: Eine praktische Referenz nach Aufgaben.
Was ist der mkdir-Befehl?
mkdir erstellt Verzeichnisse mit den angegebenen Namen. Standardmäßig schlägt er fehl, wenn ein übergeordneter Pfad fehlt oder der angeforderte Name bereits existiert. Die -p-Option erstellt fehlende übergeordnete Verzeichnisse und akzeptiert vorhandene Verzeichnisse.
Grundlegende Syntax
mkdir [OPTION]... DIRECTORY...
Setzen Sie Anführungszeichen um Pfade, die Leerzeichen enthalten. Wenn unterstützt, setzen Sie -- vor Operanden, die mit einem Bindestrich beginnen, damit sie nicht als Optionen interpretiert werden.
Grundlegende Nutzung von mkdir
Ein Verzeichnis erstellen
Verwenden Sie einen relativen oder absoluten Pfad. Das übergeordnete Verzeichnis muss bereits existieren, es sei denn, -p wird verwendet.
mkdir logs mkdir /srv/myapp
Erstellen Sie mehrere Verzeichnisse
Jeder Pfad ist ein separater Operand. Setzen Sie Anführungszeichen um Namen, die Leerzeichen enthalten.
mkdir src tests docs mkdir 'project files'
Erstellen Sie fehlende übergeordnete Verzeichnisse
Die Option -p erstellt die erforderliche Hierarchie und erleichtert das sichere Ausführen wiederholter Initialisierungsbefehle.
mkdir -p project/src/components
mkdir -p /srv/myapp/{bin,config,logs}
Überprüfung des erstellten Pfads
mkdir gibt normalerweise keine Ausgabe aus, wenn es erfolgreich abgeschlossen wird. -p erstellt auch alle fehlenden übergeordneten Verzeichnisse.
mkdir -p demo-dir/logs find demo-dir -type d
Beispielausgabe:
demo-dir demo-dir/logs
Selbst wenn das Verzeichnis erstellt wird, bedeutet dies nicht, dass die Berechtigungen wie erwartet sind. Überprüfen Sie die tatsächlichen Berechtigungen mit stat -c '%a %n' demo-dir demo-dir/logs.
Wichtige Optionen
| Option | Zweck |
|---|---|
-p, --parents |
Fehlende übergeordnete Verzeichnisse erstellen und vorhandene Verzeichnisse ignorieren. |
-m MODE |
Den Modus explizit benannter neuer Verzeichnisse festlegen. |
-v |
Jedes erstellte Verzeichnis ausgeben. |
-Z |
Den Standard-SELinux-Kontext anwenden, wo unterstützt. |
--context=CONTEXT |
Einen angegebenen Sicherheitskontext auf unterstützten Systemen festlegen. |
Lange Optionen machen überprüfte Skripte oft leichter verständlich. Wenn ein Skript auf Nicht-GNU-Systemen laufen muss, überprüfen Sie jede nicht-POSIX-Option auf der Zielplattform.
Praktische Beispiele
Ein Verzeichnis mit einem Modus erstellen
Der Modus verwendet dieselbe numerische oder symbolische Notation wie chmod. Prüfen Sie Eigentümerinformationen und die Berechtigungen der übergeordneten Verzeichnisse.
mkdir -m 750 private-data mkdir -m u=rwx,go= project-secret
Berechtigungen für übergeordnete Verzeichnisse steuern
Mit -p garantiert -m nicht denselben Modus für jeden neu erstellten übergeordneten Ordner. Legen Sie eine geeignete umask fest oder passen Sie die Hierarchie anschließend an.
( umask 027; mkdir -p app/cache/data )
find app -type d -exec chmod 750 {} +
Ergebnis überprüfen
Überprüfen Sie den Exit-Status in der Automatisierung und prüfen Sie die tatsächlichen Modi, wenn das Verzeichnis private oder gemeinsame Daten enthält.
mkdir -pv deploy/releases/current stat -c '%A %U:%G %n' deploy deploy/releases deploy/releases/current
mkdir und verwandte Befehle
| Befehl oder Methode | Hauptrolle | Geeignet für |
|---|---|---|
mkdir |
Gewöhnliche Verzeichnisse erstellen | Arbeitsbereiche und Verzeichnisbäume |
install -d |
Verzeichnisse erstellen und Attribute festlegen | Installation und Bereitstellung |
rmdir |
Leere Verzeichnisse entfernen | Sichere Bereinigung leerer Pfade |
mktemp -d |
Erstellen eines unvorhersehbaren temporären Verzeichnisses | Temporäre Skriptarbeitsbereiche |
Wichtige Hinweise
-p akzeptiert auch einen falsch eingegebenen Pfad
Ein Rechtschreibfehler kann zu einem neuen übergeordneten Verzeichnis statt zu einem sofortigen Fehler führen. Validieren Sie zuerst wichtige Systempfade und -variablen.
Standardberechtigungen hängen von der Umask ab
Ohne -m beschränkt die Prozess-Umask den Anfangsmodus. Überprüfen Sie das tatsächliche Ergebnis anstatt einen festen Wert anzunehmen.
Die Erstellung hängt von den Berechtigungen des übergeordneten Verzeichnisses ab.
Zum Erstellen eines Unterverzeichnisses sind geeignete Schreib- und Suchberechtigungen im übergeordneten Pfad erforderlich. Überprüfen Sie den vollständigen Pfad, wenn Berechtigungsfehler auftreten.
FAQ
Wie erstelle ich alle fehlenden übergeordneten Verzeichnisse?
Verwenden Sie mkdir -p PARENT/CHILD/DIRECTORY.
Wie vermeide ich einen Fehler, wenn das Verzeichnis bereits existiert?
Verwenden Sie -p. Es schlägt dennoch fehl, wenn der Pfad von einem Nicht-Verzeichnis belegt ist.
Wendet mkdir -m denselben Modus auf durch -p erstellte Eltern an?
Nicht unbedingt. Verwalten Sie die Modi der Eltern mit Umask oder einem separaten chmod-Schritt.
Sollte ich mkdir für sichere temporäre Verzeichnisse verwenden?
Verwenden Sie mktemp -d, wenn ein eindeutiger, unvorhersehbarer temporärer Name erforderlich ist.
Weitere Angaben zu Syntax, Implementierung und Verfügbarkeit finden Sie unter GNU Coreutils mkdir-Dokumentation und GNU Coreutils-Handbuch.




