mkdir serve a creare cartelle dal terminale. Dopo aver imparato a muoverti (cd) e a guardarti intorno (ls), è il momento di costruire la tua struttura di cartelle: per un progetto, per un backup, per i file di un sito.
Cos'è
mkdir è l'abbreviazione di make directory, "crea directory". Fa parte del pacchetto GNU coreutils ed è un eseguibile (/usr/bin/mkdir), disponibile su qualsiasi distribuzione GNU/Linux.
Cosa fa
Crea una o più directory vuote nel percorso indicato. Se la directory esiste già, o se manca una cartella intermedia nel percorso, restituisce un errore, a meno che tu non usi l'opzione -p. In caso di successo non stampa nulla.
Come si usa
Sintassi base:
$ mkdir [opzioni] directory...Esempio 1: creare una directory
$ mkdir progetti
$ ls
Documenti Download progettiEsempio 2: crearne più d'una con un solo comando
Basta elencarle separate da spazi:
$ mkdir bozze pubblicati archivio
$ ls
archivio bozze pubblicatiEsempio 3: creare un percorso annidato con -p
Senza -p, se le cartelle intermedie non esistono ottieni un errore:
$ mkdir blog/2026/ottobre
mkdir: impossibile creare la directory "blog/2026/ottobre": File o directory non esistenteCon -p (parents) vengono create tutte le cartelle mancanti:
$ mkdir -p blog/2026/ottobre
$ ls -R blog
blog:
2026
blog/2026:
ottobre
blog/2026/ottobre:L'opzione -p ha anche un secondo effetto utile: non dà errore se la directory esiste già.
Esempio 4: creare un'intera struttura con le parentesi graffe
La shell espande le parentesi graffe (brace expansion) prima di eseguire il comando, e questo permette di creare più directory in un colpo solo:
$ mkdir -p sito/{css,js,immagini,pagine}
$ ls sito
css immagini js pagineSi possono anche combinare livelli diversi:
$ mkdir -p progetto/{src,docs,test}/{vecchi,nuovi}Esempio 5: vedere cosa viene creato con -v
$ mkdir -pv backup/2026/ottobre
mkdir: creata la directory "backup"
mkdir: creata la directory "backup/2026"
mkdir: creata la directory "backup/2026/ottobre"Esempio 6: impostare i permessi alla creazione con -m
Con -m (mode) stabilisci subito i permessi, per esempio per una cartella accessibile solo a te:
$ mkdir -m 700 privata
$ ls -ld privata
drwx------ 2 enzo enzo 4096 ott 4 11:20 privataEsempio 7: nomi con spazi
Come per cd, i nomi con spazi vanno tra virgolette:
$ mkdir "Articoli del blog"Senza virgolette il comando creerebbe tre directory distinte: Articoli, del e blog.
Esempio 8: uso negli script
Negli script mkdir -p è la scelta più sicura, perché funziona sia la prima volta sia le successive:
#!/bin/bash
DATA=$(date +%Y-%m-%d)
mkdir -p "$HOME/backup/$DATA"
echo "Cartella pronta: $HOME/backup/$DATA"Opzioni utili
-p: crea anche le directory intermedie e non dà errore se esistono già.-v: mostra un messaggio per ogni directory creata.-m modo: imposta i permessi (per esempio-m 755o-m 700).
Attenzione a
- Gli spazi nei nomi: senza virgolette ogni parola diventa una directory separata.
- I permessi: per creare una directory serve il permesso di scrittura nella cartella che la conterrà. In caso contrario ottieni
Permission denied(in italiano,Permesso negato), e ti servesudoo un'altra posizione. - Directory già esistente: senza
-pil comando fallisce conFile esistente. Negli script può fermare tutto se non lo gestisci. - Permessi predefiniti: se non usi
-m, i permessi dipendono dallaumaskdel sistema (di solito risultano755). - Maiuscole e minuscole:
Progettieprogettisono due directory diverse.
Riepilogo
| Comando | Cosa fa |
|---|---|
mkdir nome | Crea una directory |
mkdir a b c | Crea più directory insieme |
mkdir -p a/b/c | Crea il percorso completo, senza errori se esiste |
mkdir -p x/{a,b,c} | Crea una struttura di sottocartelle in un colpo |
mkdir -v nome | Mostra cosa viene creato |
mkdir -m 700 nome | Crea con permessi specifici |