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.