Comando df: controllare l'uso del disco con le opzioni -h, -T e -i
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
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.
dfFilesystem 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/0L'output ha sei colonne, e il contenuto di ciascuna è nella tabella qui sotto.
| Campo | Contenuto |
|---|---|
| Filesystem | Nome del dispositivo o del file system (tmpfs ecc.) |
| 1K-blocks | Dimensione totale (numero di blocchi da 1.024 byte) · con -h Size |
| Used | Dimensione usata |
| Available | Dimensione libera · con -h Avail |
| Use% | Percentuale di utilizzo · Used ÷ (Used + Available), arrotondata per eccesso |
| Mounted on | Punto 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 1df (GNU coreutils) 8.32df --version | head -n 1df (GNU coreutils) 9.12️⃣ Opzione df -h
-h raggruppa le dimensioni in unità da 1.024 e le mostra con K, M o G.
df -hFilesystem 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/0I 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 -HFilesystem 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/0La 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/workFilesystem 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
-T aggiunge la colonna Type dopo Filesystem e mostra il tipo di file system.
df -hTFilesystem 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/0Le 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 -hFilesystem Size Used Avail Use% Mounted on
/dev/sda4 50G 9.8G 41G 20% /
/dev/sda3 960M 312M 648M 33% /bootCon -t xfs sono rimaste solo le due righe xfs.
df -x tmpfs -hFilesystem 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 -hFilesystem 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/efi4️⃣ df -i: uso degli inode
inode è un'informazione di gestione, una per ogni file e cartella. -i mostra il numero di inode invece della dimensione.
df -iFilesystem 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/0Inodes è 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 -ihFilesystem 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/0Il 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
--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 colonna | Intestazione | Contenuto |
|---|---|---|
| source | Filesystem | Nome del dispositivo / del file system |
| fstype | Type | Tipo di file system |
| itotal | Inodes | Numero totale di inode |
| iused | IUsed | Inode usati |
| iavail | IFree | Inode liberi |
| ipcent | IUse% | Percentuale di utilizzo degli inode |
| size | Size | Dimensione totale |
| used | Used | Dimensione usata |
| avail | Avail | Dimensione libera |
| pcent | Use% | Percentuale di utilizzo |
| file | File | Nome del file indicato nel comando |
| target | Mounted on | Punto di mount |
df --output=source,fstype,size,used,avail,pcent,target -hFilesystem 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/0Scrivendo sette colonne in ordine si è ottenuto lo stesso output di [df -hT].
df --output=target,pcent,avail -hMounted 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% 376MScrivendo 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 --totalFilesystem 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.
6️⃣ Errori del comando df
Indicando un percorso inesistente è comparso [No such file or directory] e il comando è terminato con codice di uscita 1.
df -h /nonexistent-dirdf: /nonexistent-dir: No such file or directorySe 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 nosuchfsdf: no file systems processedUn nome di colonna inesistente dato a --output è comparso nel messaggio di errore.
df --output=bogusdf: 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 --outputdf: options -i and --output are mutually exclusive
Try 'df --help' for more information.🔢 FAQ & contenuti consigliati
UUID
Comando blkid su Linux | Differenza tra UUID e GUID
Un articolo su come controllare il tipo di file system e l'UUID dei dispositivi a blocchi con il comando blkid.
Partizione
Comando gdisk: come partizionare un disco in Linux
Un articolo sui passaggi per creare ed eliminare partizioni su un disco con il comando gdisk.
ℹ️ 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.