Comando df: controllare l'uso del disco con le opzioni -h, -T e -i

Ambiente di testFamiglia RHELAlmaLinux 9.8coreutils 8.32account rootDebian 12 · coreutils 9.1 account normaleVerificato il 2026-10-29
Comandi per dischi · mountdfPosizione/usr/bin/df

Il comando df è un comando Linux che mostra, su una riga per ogni file system montato, la dimensione totale, lo spazio usato, lo spazio libero e la percentuale di utilizzo. Dopo aver eseguito df con le opzioni -h, -T, -i, --output e -x, una alla volta, su un server AlmaLinux 9 e su un server Debian 12 e aver confrontato l'output, lo spazio su disco si controlla nella colonna Use% e il limite del numero di file nella colonna IUse% di df -i.

Nell'output del server AlmaLinux 9.8, i nomi dei dispositivi, le dimensioni dei dischi e la dimensione e l'uso di tmpfs, che dipendono dalla memoria, sono stati sostituiti con valori di esempio coerenti tra loro, e sono state tolte le righe di mount presenti solo su quel server. Anche il percorso della cartella scritto nei comandi è un valore di esempio, mentre l'output del server Debian 12 è riportato così com'era.

1️⃣ Come usare il comando df su Linux

  • ↪️ Le sei colonne di output e il calcolo di Use%

La forma di base è [df opzioni file]. Senza file mostra tutti i file system montati, e senza opzioni indica le dimensioni come numero di blocchi da 1.024 byte.

df
Filesystem     1K-blocks     Used Available Use% Mounted on
devtmpfs         1890316        0   1890316   0% /dev
tmpfs            1921072        0   1921072   0% /dev/shm
tmpfs             768432    17104    751328   3% /run
efivarfs             128        4       120   4% /sys/firmware/efi/efivars
/dev/sda4       52403180 10265000  42138180  20% /
/dev/sda3         983040   319488    663552  33% /boot
/dev/sda2         204580     7116    197464   4% /boot/efi
tmpfs             384212        4    384208   1% /run/user/0

L'output ha sei colonne, e il contenuto di ciascuna è nella tabella qui sotto.

CampoContenuto
FilesystemNome del dispositivo o del file system (tmpfs ecc.)
1K-blocksDimensione totale (numero di blocchi da 1.024 byte) · con -h Size
UsedDimensione usata
AvailableDimensione libera · con -h Avail
Use%Percentuale di utilizzo · Used ÷ (Used + Available), arrotondata per eccesso
Mounted onPunto di mount (la cartella a cui è collegato il file system)

Collegare un dispositivo a una cartella si chiama montare un disco, e per collegarlo in automatico a ogni avvio lo si scrive in /etc/fstab.

Ricalcolando ogni riga dell'output del server AlmaLinux 9.8, Use% corrispondeva a Used diviso per la somma di Used e Available, arrotondato per eccesso. Per la root (/) dell'output qui sopra, 10265000 diviso 52403180 dà il 19,6%, mostrato come 20%.

df fa parte del pacchetto coreutils. La versione è stata controllata sulla prima riga di [df --version]: coreutils 8.32 sul server AlmaLinux 9.8 e 9.1 sul server Debian 12.

df --version | head -n 1
df (GNU coreutils) 8.32
df --version | head -n 1
df (GNU coreutils) 9.1

2️⃣ Opzione df -h

  • ↪️ Unità leggibili e un solo percorso

-h raggruppa le dimensioni in unità da 1.024 e le mostra con K, M o G.

df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           751M   17M  734M   3% /run
efivarfs        128K  3.8K  120K   4% /sys/firmware/efi/efivars
/dev/sda4        50G  9.8G   41G  20% /
/dev/sda3       960M  312M  648M  33% /boot
/dev/sda2       200M  7.0M  193M   4% /boot/efi
tmpfs           376M  4.0K  376M   1% /run/user/0

I blocchi da 1K della root (/), 52403180, sono diventati 50G, e i 10265000 usati 9.8G. I numeri sono arrotondati per eccesso; sotto 10 comparivano con un decimale, come 9.8G, e da 10 in su come interi, come 50G.

-H raggruppa in unità da 1.000 invece che da 1.024.

df -H
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        2.0G     0  2.0G   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           787M   18M  770M   3% /run
efivarfs        132k  3.9k  123k   4% /sys/firmware/efi/efivars
/dev/sda4        54G   11G   44G  20% /
/dev/sda3       1.1G  328M  680M  33% /boot
/dev/sda2       210M  7.3M  203M   4% /boot/efi
tmpfs           394M  4.1k  394M   1% /run/user/0

La stessa root compariva come 54G con -H, un numero più grande che con -h, e l'unità kilo diventava una k minuscola, come in 132k.

Se si indica un file o una cartella, df mostra solo la riga del file system che contiene quel percorso.

df -h /root/work
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda4        50G  9.8G   41G  20% /

/root/work è una cartella dentro la root (/), quindi è comparsa la riga di /dev/sda4. Lo spazio occupato da ogni cartella si somma con il Comando du.

Sul server Debian 12, indicando la cartella home (~) da un account normale è comparsa una sola riga di /dev/vda2, con un utilizzo del 52%.

df -h ~
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda2        23G   12G   11G  52% /

3️⃣ df -T: tipo di file system

  • ↪️ Scegliere i tipi con -t e -x

-T aggiunge la colonna Type dopo Filesystem e mostra il tipo di file system.

df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs          tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs          tmpfs     751M   17M  734M   3% /run
efivarfs       efivarfs  128K  3.8K  120K   4% /sys/firmware/efi/efivars
/dev/sda4      xfs        50G  9.8G   41G  20% /
/dev/sda3      xfs       960M  312M  648M  33% /boot
/dev/sda2      vfat      200M  7.0M  193M   4% /boot/efi
tmpfs          tmpfs     376M  4.0K  376M   1% /run/user/0

Le partizioni del disco /dev/sda4 e /dev/sda3 erano xfs, e /boot/efi era vfat. tmpfs e devtmpfs sono file system che usano la memoria invece del disco.

La root del server Debian 12 era ext4.

df -hT ~
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vda2      ext4   23G   12G   11G  52% /

-t mantiene solo il tipo indicato, mentre -x mostra tutto tranne il tipo indicato.

df -t xfs -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda4        50G  9.8G   41G  20% /
/dev/sda3       960M  312M  648M  33% /boot

Con -t xfs sono rimaste solo le due righe xfs.

df -x tmpfs -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
efivarfs        128K  3.8K  120K   4% /sys/firmware/efi/efivars
/dev/sda4        50G  9.8G   41G  20% /
/dev/sda3       960M  312M  648M  33% /boot
/dev/sda2       200M  7.0M  193M   4% /boot/efi

-x tmpfs ha tolto le tre righe tmpfs, mentre devtmpfs, dal nome simile, è rimasto. Vengono tolte solo le righe il cui nome di tipo coincide esattamente, quindi per togliere anche devtmpfs si scrive -x un'altra volta.

df -x tmpfs -x devtmpfs -h
Filesystem      Size  Used Avail Use% Mounted on
efivarfs        128K  3.8K  120K   4% /sys/firmware/efi/efivars
/dev/sda4        50G  9.8G   41G  20% /
/dev/sda3       960M  312M  648M  33% /boot
/dev/sda2       200M  7.0M  193M   4% /boot/efi

4️⃣ df -i: uso degli inode

  • ↪️ Controllare il limite del numero di file

inode è un'informazione di gestione, una per ogni file e cartella. -i mostra il numero di inode invece della dimensione.

df -i
Filesystem       Inodes IUsed    IFree IUse% Mounted on
devtmpfs         472579   377   472202    1% /dev
tmpfs            480268     2   480266    1% /dev/shm
tmpfs            819200   645   818555    1% /run
efivarfs              0     0        0     - /sys/firmware/efi/efivars
/dev/sda4      26201024 98214 26102810    1% /
/dev/sda3        524288   362   523926    1% /boot
/dev/sda2             0     0        0     - /boot/efi
tmpfs             96053    21    96032    1% /run/user/0

Inodes è il numero totale che si può creare, IUsed il numero usato, IFree il numero rimasto e IUse% la percentuale di utilizzo. /boot/efi, che è vfat, ed efivarfs hanno 0 inode, quindi IUse% compariva come -.

Ogni nuovo file usa un inode, quindi quando IUse% arriva al 100% non si possono creare nuovi file anche se Use% è basso. Su un server che accumula molti file piccoli, si controllano insieme [df -h] e [df -i].

Aggiungendo anche -h, i conteggi vengono raggruppati in unità K e M, e i 26201024 della root comparivano come 25M.

df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
devtmpfs         462K   377  462K    1% /dev
tmpfs            470K     2  470K    1% /dev/shm
tmpfs            800K   645  800K    1% /run
efivarfs            0     0     0     - /sys/firmware/efi/efivars
/dev/sda4         25M   96K   25M    1% /
/dev/sda3        512K   362  512K    1% /boot
/dev/sda2           0     0     0     - /boot/efi
tmpfs             94K    21   94K    1% /run/user/0

Il server Debian 12 usava 188009 inode su 6285088, con un IUse% del 3%.

df -i ~
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/vda2      6285088 188009 6097079    3% /

5️⃣ df --output: scegliere le colonne di output

  • ↪️ Scegliere solo le colonne necessarie e il totale con --total

--output stabilisce direttamente le colonne da mostrare e il loro ordine. I nomi delle colonne si scrivono separati da virgole, e si possono usare i dodici nomi della tabella qui sotto (secondo --help).

Nome della colonnaIntestazioneContenuto
sourceFilesystemNome del dispositivo / del file system
fstypeTypeTipo di file system
itotalInodesNumero totale di inode
iusedIUsedInode usati
iavailIFreeInode liberi
ipcentIUse%Percentuale di utilizzo degli inode
sizeSizeDimensione totale
usedUsedDimensione usata
availAvailDimensione libera
pcentUse%Percentuale di utilizzo
fileFileNome del file indicato nel comando
targetMounted onPunto di mount
df --output=source,fstype,size,used,avail,pcent,target -h
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs          tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs          tmpfs     751M   17M  734M   3% /run
efivarfs       efivarfs  128K  3.8K  120K   4% /sys/firmware/efi/efivars
/dev/sda4      xfs        50G  9.8G   41G  20% /
/dev/sda3      xfs       960M  312M  648M  33% /boot
/dev/sda2      vfat      200M  7.0M  193M   4% /boot/efi
tmpfs          tmpfs     376M  4.0K  376M   1% /run/user/0

Scrivendo sette colonne in ordine si è ottenuto lo stesso output di [df -hT].

df --output=target,pcent,avail -h
Mounted on                Use% Avail
/dev                        0%  1.9G
/dev/shm                    0%  1.9G
/run                        3%  734M
/sys/firmware/efi/efivars   4%  120K
/                          20%   41G
/boot                      33%  648M
/boot/efi                   4%  193M
/run/user/0                 1%  376M

Scrivendo i nomi delle colonne nell'ordine target, pcent, avail, il punto di mount è passato in testa, seguito dalla percentuale di utilizzo e dalla dimensione libera in quest'ordine.

--total aggiunge una riga del totale in fondo.

df -h --total
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           751M   17M  734M   3% /run
efivarfs        128K  3.8K  120K   4% /sys/firmware/efi/efivars
/dev/sda4        50G  9.8G   41G  20% /
/dev/sda3       960M  312M  648M  33% /boot
/dev/sda2       200M  7.0M  193M   4% /boot/efi
tmpfs           376M  4.0K  376M   1% /run/user/0
total            56G   11G   46G  19% -

La riga total è la somma di tutte le otto righe sopra, quindi sono stati sommati anche i file system in memoria come tmpfs.

🔲 Simulatore del comando df

Nel simulatore qui sotto puoi eseguire df con -h, -H, -T, -i, -t, -x, --output e --total e vedere come cambiano le colonne di output con ogni opzione.

Simulatore del comando dfcoreutils 8.32
[root@server work]#
È un server virtuale che funziona solo nel browser; i nomi dei dispositivi e le dimensioni sono valori di esempio, e il pannello a sinistra mostra dimensione e utilizzo di df -h per ogni punto di mount.

6️⃣ Errori del comando df

  • ↪️ No such file or directory e no file systems processed

Indicando un percorso inesistente è comparso [No such file or directory] e il comando è terminato con codice di uscita 1.

df -h /nonexistent-dir
df: /nonexistent-dir: No such file or directory

Se a -t si dà un tipo che non esiste sul server, non resta nessuna riga da mostrare: è comparso [no file systems processed], e il codice di uscita era 1.

df -t nosuchfs
df: no file systems processed

Un nome di colonna inesistente dato a --output è comparso nel messaggio di errore.

df --output=bogus
df: option --output: field 'bogus' unknown
Try 'df --help' for more information.

Usare -i o -T insieme a --output ha mostrato [mutually exclusive] e terminato con lo stesso codice di uscita 1. Per vedere inode o tipi con --output, si scrivono nomi di colonna come itotal e fstype.

df -i --output
df: options -i and --output are mutually exclusive
Try 'df --help' for more information.

🔢 FAQ & contenuti consigliati

Eseguendo [df -a] sono comparsi anche file system virtuali di dimensione 0, come proc, sysfs e cgroup2, aumentando le righe, e la colonna Use% di queste righe era -. L'output predefinito omette queste righe (secondo --help).

Con -l (--local) df mostra solo i file system locali (secondo --help). Sul server AlmaLinux 9.8, senza mount remoti, [df -l -h] ha dato lo stesso output di [df -h].

Indicando un'unità con -B, tutte le dimensioni vengono mostrate in quell'unità. Con [df -BM /] l'intestazione è diventata 1M-blocks e la dimensione della root è comparsa come 51175M.

ℹ️ Informativa sull'affiliazione
I contenuti di questo sito includono link di affiliazione. Se un visitatore acquista un prodotto o un servizio tramite uno di questi link, il sito riceve una commissione dal venditore. In questo processo l'importo pagato dall'acquirente (durante le promozioni l'importo scende↓) non aumenta. Prezzi, sconti e disponibilità indicati si riferiscono al momento della stesura e possono differire da quelli reali: prima di acquistare verifica sempre presso il venditore. I prodotti vengono scelti e valutati secondo criteri propri, e le commissioni non influiscono sull'ordine di presentazione né sul contenuto delle valutazioni.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dimostra di essere umano: 10   +   3   =