mkdir

Tworzy nowy katalog (lub całą ścieżkę katalogów).

mkdir (od make directory) to jedno z pierwszych poleceń, które poznasz w terminalu Linuksa. Tworzy nowe katalogi w bieżącej lokalizacji albo pod wskazaną ścieżką. Brzmi banalnie i takie jest, ale ma kilka opcji, które oszczędzają sporo klepania — zwłaszcza gdy potrzebujesz od razu całe drzewo folderów albo ustawić uprawnienia bez osobnego chmod.

Składnia i najważniejsze opcje

Podstawowa forma to: mkdir [OPCJE] KATALOG... — możesz podać jeden katalog albo kilka naraz, oddzielonych spacjami.

  • -p (--parents) — tworzy całą ścieżkę naraz, łącznie z brakującymi katalogami nadrzędnymi; nie zgłasza błędu, jeśli katalog już istnieje.
  • -v (--verbose) — wypisuje komunikat o każdym utworzonym katalogu, więc widzisz, co faktycznie powstało.
  • -m TRYB (--mode=TRYB) — ustawia uprawnienia nowego katalogu od razu przy tworzeniu, np. 0755, zamiast osobnego chmod.
  • -Z (--context) — ustawia kontekst SELinux dla nowego katalogu (przydatne na systemach z SELinux, np. RHEL/Fedora).
  • --help — wyświetla skróconą pomoc, a --version numer wersji.

Przykłady użycia

  • mkdir projekt — tworzy pojedynczy katalog projekt w bieżącym miejscu.
  • mkdir zdjecia dokumenty muzyka — tworzy trzy katalogi za jednym zamachem.
  • mkdir -p projekt/src/utils — tworzy całą ścieżkę naraz; jeśli projekt i src jeszcze nie istnieją, też powstaną.
  • mkdir -m 700 prywatne — tworzy katalog prywatne dostępny tylko dla Ciebie (rwx dla właściciela, reszta nic).
  • mkdir -pv strona/{css,js,img} — łączy tworzenie ścieżki z trybem gadatliwym; nawias to rozwijanie powłoki (brace expansion), które zrobi trzy podkatalogi.

Częste błędy i pułapki

Najczęstszy zgrzyt to brak -p: jeśli spróbujesz mkdir a/b/c, a katalog a nie istnieje, dostaniesz No such file or directory. Flaga -p rozwiązuje to natychmiast.

Drugi klasyk: tworzenie katalogu, który już istnieje. Zwykłe mkdir foo zwróci wtedy błąd File exists, ale z -p komenda przejdzie cicho — dlatego -p dobrze nadaje się do skryptów, gdzie nie chcesz wywalać się na istniejącym folderze.

Uważaj też na spacje w nazwach: mkdir Nowy Folder stworzy dwa katalogi, a nie jeden. Chcąc nazwę ze spacją, użyj cudzysłowu: mkdir "Nowy Folder". Pamiętaj również, że -m ustawia uprawnienia z uwzględnieniem maski umask tylko częściowo — tryb podany jawnie ma pierwszeństwo, więc 700 da dokładnie te uprawnienia.

Powiązane komendy: rmdir (usuwa puste katalogi), rm -r (usuwa katalog z zawartością), ls, cd, chmod oraz cp i mv.