La comanda mkdir (de make directory) crea directoris nous. Pot crear-ne un o molts de cop, crear tota una ruta de directoris intermedis amb una sola comanda i assignar-los els permisos que vulguis des del principi.
Sintaxi
mkdir [opcions] directori...
Opcions més útils
| Opció | Què fa |
|---|---|
-p | Crea també els directoris intermedis que falten, i no dona error si el directori ja existeix |
-m mode | Assigna els permisos indicats (com amb chmod) al directori nou |
-v | Mostra un missatge per cada directori creat |
Exemples
Crear un directori al directori actual:
mkdir projectes
Crear-ne uns quants de cop:
mkdir fotos videos documents
Crear un directori amb una ruta absoluta (el directori pare ha d’existir):
mkdir /tmp/proves
Crear tota una ruta, amb els directoris intermedis, i veure què ha fet:
$ mkdir -pv x/y/z
mkdir: created directory 'x'
mkdir: created directory 'x/y'
mkdir: created directory 'x/y/z'
Sense -p, si x o x/y no existeixen, mkdir falla amb No such file or directory.
Crear una estructura de directoris amb l’expansió de claus de Bash:
$ mkdir -p web/{css,js,img}
$ ls web
css img js
Crear un directori amb permisos concrets:
$ mkdir -m 750 privat
$ ls -ld privat
drwxr-x--- 2 oscar oscar 4096 Oct 3 17:49 privat
750 vol dir: el propietari ho pot tot (rwx), el grup pot entrar-hi i llegir (r-x) i la resta no hi té cap accés. Si no poses -m, els permisos depenen de la teva umask (amb la umask 022, un directori nou queda com a 755, drwxr-xr-x).
Noms amb espais o caràcters especials, entre cometes:
mkdir "el meu directori"
mkdir 'preus$2026'
Directori ocult (el nom comença per punt):
mkdir .copies
Errors habituals
$ mkdir projectes
mkdir: cannot create directory ‘projectes’: File exists
Si en un script vols crear un directori «si no existeix», fes servir mkdir -p: no dona error si ja hi és.
mkdir: cannot create directory ‘/opt/app’: Permission denied
No tens permís d’escriptura al directori pare. Per crear directoris a /opt, /etc o /var necessites sudo.
Compte amb -p i -m alhora
Amb mkdir -p -m 700 a/b/c, el mode 700 només s’aplica a l’últim directori (c). Els intermedis (a i a/b) es creen amb els permisos per defecte de la umask. Si els vols tots iguals, crea’ls i després aplica chmod.