Salta al contenuto principale

mkdir: crea nuove directory

Inviato da tuxsa il

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  progetti

Esempio 2: crearne più d'una con un solo comando

Basta elencarle separate da spazi:

$ mkdir bozze pubblicati archivio
$ ls
archivio  bozze  pubblicati

Esempio 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 esistente

Con -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  pagine

Si 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 privata

Esempio 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 755 o -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 serve sudo o un'altra posizione.
  • Directory già esistente: senza -p il comando fallisce con File esistente. Negli script può fermare tutto se non lo gestisci.
  • Permessi predefiniti: se non usi -m, i permessi dipendono dalla umask del sistema (di solito risultano 755).
  • Maiuscole e minuscole: Progetti e progetti sono due directory diverse.

Riepilogo

ComandoCosa fa
mkdir nomeCrea una directory
mkdir a b cCrea più directory insieme
mkdir -p a/b/cCrea il percorso completo, senza errori se esiste
mkdir -p x/{a,b,c}Crea una struttura di sottocartelle in un colpo
mkdir -v nomeMostra cosa viene creato
mkdir -m 700 nomeCrea con permessi specifici