Comando df in Linux: controllare spazio libero e inode
df mostra dimensione, spazio usato e spazio disponibile dei file system montati. Per capire se il volume che contiene una directory è pieno, indica quel percorso; per misurare invece i file e le directory usa il comando du.
df legge le statistiche del file system, senza sommare uno per uno i file. La colonna Avail rappresenta lo spazio disponibile agli utenti ordinari: con blocchi riservati può differire da dimensione totale meno spazio usato. Inoltre lo spazio in byte non basta sempre: un file system senza inode liberi può non riuscire a creare nuovi file.
Sintassi di base
df [opzioni] [file o punto di montaggio]
Le parentesi descrivono elementi facoltativi e non si digitano. Il percorso deve esistere: df riporta il file system che lo contiene, non la dimensione di quel singolo file. Le opzioni qui descritte si riferiscono a GNU df; verifica l'implementazione installata con df --version e il manuale locale con man df.
Esempi pratici
Esaminare i file system montati
df -h
-h rende le dimensioni leggibili usando potenze di 1024. Non confonderlo con -H, che usa potenze di 1000. Senza un percorso, GNU df elenca normalmente i file system montati pertinenti, omettendo alcune voci come gli pseudofile system e i duplicati; non è un inventario dei dischi fisici o delle partizioni non montate.
Controllare il volume che contiene /var
df -h /var
Leggi il punto di montaggio nell'ultima colonna. Se /var non ha un file system separato, il risultato può riferirsi a /. Cancellare dati in un altro volume non libera necessariamente spazio in quello che interessa. Se il percorso non esiste nel tuo ambiente, sostituiscilo con una directory esistente da controllare.
Controllare gli inode
df -i /var
Un inode conserva i metadati di un oggetto del file system. Osserva IFree e IUse%: molti piccoli file possono consumare gli inode prima dei blocchi di dati, a seconda del file system. Un trattino indica che il valore non è disponibile, non zero inode liberi. Prima di cancellare qualcosa identifica il percorso, il proprietario e la funzione dei file; una creazione fallita può dipendere anche da permessi, quote o un montaggio in sola lettura.
Leggere le colonne e la percentuale d'uso
Per limitare l'osservazione al file system della directory radice:
df -h /
Ecco un output illustrativo di Linux: nomi dei dispositivi, lingua delle intestazioni e valori dipendono dalla macchina. Queste dimensioni non sono una misura del tuo sistema.
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 40G 18G 20G 48% /
Filesystem identifica la sorgente, Size la dimensione totale, Used lo spazio usato e Avail quello disponibile agli utenti ordinari. Mounted on indica dove il file system è montato. I valori con suffissi sono arrotondati: non ricostruire una contabilità esatta sommando soltanto quelli visualizzati.
Use% non va interpretato come la semplice divisione tra i valori stampati di Used e Size. In GNU df il calcolo tiene conto dello spazio usato e di quello disponibile agli utenti ordinari, arrotondando la percentuale verso l'alto. Nell'esempio, 18 / (18 + 20) è circa 47,37%, quindi 48% è coerente anche se 18 è meno della metà di 40. I blocchi riservati spiegano perché Avail può essere minore di Size - Used.
Opzioni principali
| Opzione o formato | Uso in GNU df |
|---|---|
-h |
Mostra dimensioni leggibili con potenze di 1024. |
-T |
Aggiunge il tipo di file system, per esempio ext4. |
-i |
Mostra l'uso degli inode al posto dei blocchi. |
-t tipo |
Limita i risultati al tipo indicato. Per esempio, df -h -t ext4 seleziona i file system ext4. |
--output=campi |
Seleziona le colonne richieste, separate da virgole, per esempio df --output=source,avail,target /. |
Con --output usa i nomi dei campi documentati: per il tipo scegli fstype. In GNU df questa modalità non si combina con -i, -T o -P; scegli i campi corrispondenti invece di sommare opzioni incompatibili. Negli script fissa unità e lingua, verifica il codice di uscita e considera spazi nei nomi: le colonne visive del risultato predefinito non sono un formato da separare alla cieca su ogni spazio.
Differenze rispetto a du e casi da verificare
Se df segnala poco spazio ma du trova pochi dati, confronta lo stesso file system e un ambito accessibile con permessi adeguati. Un file eliminato dall'elenco delle directory può restare aperto in un processo e continuare a occupare spazio; non terminare servizi senza identificarli e concordare l'intervento. Blocchi riservati, snapshot e dati nascosti sotto altri punti di montaggio possono contribuire alla differenza, secondo il file system e la configurazione.
Con storage di rete, container e overlay, più righe possono riferirsi allo stesso spazio sottostante: non sommarle come se fossero dischi indipendenti. Un controllo nel container va interpretato nel suo ambiente di montaggio; non dimostra da solo quanta capacità fisica sia disponibile sull'host. Ripeti il controllo sul percorso interessato dopo un intervento e verifica anche che l'applicazione riesca a scrivere.
Domande frequenti
Perché df e du mostrano valori diversi?
df legge le statistiche complessive del file system; du somma l'uso dei file e delle directory che può esaminare. File eliminati ma ancora aperti, permessi, blocchi riservati e differenze nell'ambito dei montaggi possono impedire che i due risultati coincidano.
Documentazione di riferimento
Il manuale GNU df elenca opzioni e campi disponibili. Il codice sorgente ufficiale di GNU df chiarisce il trattamento dei valori disponibili e dei formati di uscita. Confronta le opzioni con la versione presente nella tua distribuzione.




