Startseite
» LINUX
»
Wie man mit Bash und mkdir Verzeichnisse in Linux erstellt
Wie man mit Bash und mkdir Verzeichnisse in Linux erstellt
Um in der Bash unter Linux ein Verzeichnis zu erstellen, verwenden Sie den mkdirBefehl `npm` gefolgt vom Verzeichnisnamen. Beispielsweise mkdir projectserstellt `npm` einen Ordner namens `verzeichnis` projectsim aktuellen Arbeitsverzeichnis. Sie benötigen keinen separaten Dateimanager oder ein zusätzliches Paket für die normale Verzeichniserstellung.
Streng genommen mkdirist `mkdir` kein Bash-eigenes Dienstprogramm. Bash verwendet das auf dem System installierte Verzeichniserstellungsprogramm; bei typischen GNU/Linux-Distributionen stammt dieses Programm aus den GNU Coreutils. Die aktuelle Dokumentation von `mkdir` in den GNU Coreutils beschreibt die Standard-Syntax und nützliche Optionen wie -p`--no -m-device`, `--no-device` und `--no-device` -v.
Erstelle ein Verzeichnis mit mkdir
Öffnen Sie ein Terminal und überprüfen Sie gegebenenfalls pwdIhren aktuellen Standort. Führen Sie anschließend folgenden Befehl aus:
mkdir projects
Wenn der Befehl erfolgreich ausgeführt wird, wird normalerweise nichts ausgegeben. Bestätigen Sie das neue Verzeichnis mit:
ls
Es wird ein Verzeichnis am aktuellen Speicherort erstellt mit mkdir.
Sie können auch mkdireinen Pfad angeben. In Bash wird ein nicht in Anführungszeichen gesetzter ~Pfad zu Ihrem Home-Verzeichnis erweitert, sodass Folgendes archivesin Ihrem Home-Ordner erstellt wird:
mkdir ~/archives
Das Bash-Handbuch zur Tilde-Expansion erklärt, wie ~diese funktioniert. Existiert das übergeordnete Verzeichnis nicht, mkdirschlägt die einfache Ausführung fehl; verwenden Sie stattdessen `tilde` -pfür verschachtelte Pfade.
Erstelle verschachtelte Verzeichnisse mit mkdir -p
Die Option -p„or“ --parentserstellt fehlende übergeordnete Verzeichnisse nach Bedarf. Dies ist die bequemste Wahl, wenn Sie eine tiefere Verzeichnisstruktur erstellen:
mkdir -p ~/work/client/site/assets
Falls work, client, oder sitenoch nicht existiert, mkdir -pwird es erstellt. Es wird auch kein Fehler gemeldet, nur weil eine vorhandene Pfadkomponente bereits ein Verzeichnis ist.
mkdir -pErstellt fehlende übergeordnete Verzeichnisse mit einem einzigen Befehl.
Bei Skripten können Sie festlegen, -vwann eine visuelle Bestätigung der erstellten Inhalte gewünscht ist:
mkdir -pv ~/work/client/site/assets
Erstellen Sie mehrere Verzeichnisse gleichzeitig
mkdirAkzeptiert mehrere Verzeichnisnamen, sodass Sie mit einem einzigen Befehl mehrere Ordner erstellen können:
mkdir docs images backups
Da diese Anleitung Bash verwendet, können Sie die Klammererweiterung auch dann nutzen , wenn mehrere Verzeichnisnamen denselben Pfad haben:
mkdir -p project/{src,tests,docs}
Bash erweitert diesen Ausdruck vor der Ausführung mkdirund erzeugt dabei project/src, project/testsund project/docs. GNU Bash dokumentiert dieses Verhalten in seiner Referenz zur Klammererweiterung . Die Klammererweiterung ist ein Bash-Feature; gehen Sie daher nicht davon aus, dass ein Skript, das von einem strikt POSIX-konformen System ausgeführt wird, shsie auf dieselbe Weise interpretiert.
Die Bash-Brace-Expansion ist eine kompakte Methode, um mehrere zusammengehörige Verzeichnisse zu erstellen.
Verzeichnisnamen mit Leerzeichen und benutzerdefinierten Berechtigungen
Enthält ein Verzeichnisname Leerzeichen, muss der gesamte Name in Anführungszeichen gesetzt werden, wenn er relativ zum aktuellen Verzeichnis angegeben wird:
mkdir "Project Files"
Bei einem Pfad innerhalb Ihres Home-Verzeichnisses $HOMEist die Verwendung von doppelten Anführungszeichen sicherer als die Verwendung einer Tilde als Literal:
mkdir "$HOME/Project Files"
Schreiben Sie nicht mkdir "~/Project Files"und erwarten Sie ~, dass es sich automatisch erweitert; das Setzen der Tilde in Anführungszeichen verhindert die normale Erweiterung der Tilde.
GNU mkdirunterstützt auch -mdas Festlegen des Berechtigungsmodus des neuen Verzeichnisses. Zum Beispiel:
mkdir -m 750 private
Damit werden Lese-, Schreib- und Ausführungsberechtigungen für den Besitzer, Lese- und Ausführungsberechtigungen für die Gruppe und keine Berechtigungen für andere angefordert. Überprüfen Sie das Ergebnis mit:
ls -ld private
Anführungszeichen schützen Namen mit Leerzeichen, während -mder gewünschte Verzeichnisberechtigungsmodus festgelegt wird.
Häufige mkdir-Fehler
Die Datei existiert bereits: Der Zielname ist bereits vorhanden. Falls es sich um ein bestehendes Verzeichnis in einem verschachtelten Pfad handelt, mkdir -pkann dies angebracht sein.
Datei oder Verzeichnis nicht gefunden: Es fehlt ein übergeordneter Pfad. Verwenden Sie diese Option mkdir -p path/to/new/folder, wenn fehlende übergeordnete Pfade automatisch erstellt werden sollen.
Zugriff verweigert: Ihr Konto hat keine Schreibrechte für diesen Speicherort. Erstellen Sie das Verzeichnis in einem Verzeichnis, dessen Rechte Sie besitzen, oder verwenden Sie Administratorrechte nur dann, wenn diese für den Systemspeicherort unbedingt erforderlich sind.
Leerzeichen trennen den Namen: Setzen Sie den Pfad in Anführungszeichen, zum Beispiel mkdir "$HOME/My Projects".
Entferne ein von dir erstelltes Verzeichnis.
Für ein leeres Verzeichnis verwenden Sie rmdir:
rmdir projects
Die Dokumentation von GNU Coreutils rmdir bestätigt, dass rmdirleere Verzeichnisse gelöscht werden. Enthält ein Verzeichnis Dateien, rmdirwird es nicht gelöscht. rm -rFür nicht leere Verzeichnisse ist eine rekursive Löschung möglich. Prüfen Sie jedoch vorher den Pfad sorgfältig, da dabei das Verzeichnis und sein Inhalt gelöscht werden.
Kurzbefehlsreferenz
mkdir name— Erstelle ein Verzeichnis am aktuellen Speicherort.
mkdir ~/name— Erstellen Sie ein Verzeichnis unterhalb Ihres Home-Verzeichnisses.
mkdir -p a/b/c— Erstellen eines verschachtelten Verzeichnisbaums und fehlender übergeordneter Verzeichnisse.
mkdir one two three— mehrere Verzeichnisse gleichzeitig erstellen.
mkdir -p project/{src,tests,docs}— Verwenden Sie die Bash-Klammererweiterung für verwandte Ordner.
mkdir "$HOME/Project Files"— einen Home-Verzeichnispfad mit Leerzeichen sicher erstellen.
mkdir -m 750 private— ein Verzeichnis mit einem bestimmten Berechtigungsmodus erstellen.
mkdir --helpoder man mkdir— lokale Befehlshilfe anzeigen.