Come Verificare lo Spazio su Disco in Linux - Comandi per l'Utilizzo dello Spazio su Disco

Pubblicato 23 gennaio 2026

Quando gestisci lo spazio su disco sui sistemi Linux, ci sono diversi strumenti da riga di comando che possono aiutarti ad analizzare l'utilizzo dello storage e trovare aree da ottimizzare. In questo articolo, vedremo come usare questi comandi per capire e gestire lo spazio su disco in Linux.

Punti Chiave

  • Il comando 'df' mostra lo spazio totale e disponibile su ogni disco collegato al sistema
  • 'df -H' mostra l'output in un formato leggibile (MB, GB, TB)
  • Personalizza l'output di 'df' con il flag '--output' seguito dai nomi dei campi (es., source, size, used, avail)
  • Il comando 'du' mostra le dimensioni di directory e file
  • Combina 'du' con 'sort' e 'head' per trovare le directory più grandi (es., 'du -a . | sort -n -r | head -n 10')

Comando df

Panoramica del comando 'df'

Il comando 'df', che sta per "disk filesystem", è uno strumento per controllare l'utilizzo dello spazio su disco nei sistemi Linux. Mostra informazioni sullo spazio totale e disponibile su ogni disco collegato al sistema, inclusi i dischi locali e i file system di rete. Questo comando è stato usato dagli utenti Linux per analizzare l'utilizzo dello spazio su disco fin dai primi giorni del sistema operativo negli anni '90.

Utilizzo base di 'df'

Per usare 'df', esegui il comando con il flag '-H', così: df -H. Questo mostra l'output in un formato leggibile, visualizzando le dimensioni dello spazio su disco in megabyte, gigabyte o terabyte. L'output include diverse colonne di informazioni per ogni file system:

Colonna Descrizione
Filesystem Il nome del file system o il percorso del dispositivo
Size La dimensione totale del file system
Used La quantità di spazio utilizzato sul file system
Available Lo spazio libero rimanente sul file system
Use% La percentuale del file system occupata
Mounted on Il punto di mount dove è collegato il file system

Ad esempio, per controllare quanto spazio è rimasto sul disco principale del sistema, che di solito è montato su '/', esegui:

df -H /

Questo potrebbe produrre qualcosa come:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       100G   65G   35G  65% /

Per visualizzare informazioni su un disco o una partizione specifica, includi il percorso del dispositivo come argomento di 'df'. Ad esempio, df -H /dev/sda1 mostra l'utilizzo dello spazio per la prima partizione sul disco SATA primario.

Personalizzare l'output di 'df'

Per impostazione predefinita, 'df' include un set di colonne nel suo output. Puoi personalizzarlo usando il flag '--output' seguito da un elenco separato da virgole di nomi di campi. Alcuni campi utili sono:

  • source: il dispositivo sorgente del file system
  • size: dimensione totale del file system
  • used: quantità di spazio utilizzato
  • avail: quantità di spazio disponibile
  • pcent: percentuale di spazio utilizzato

Ad esempio, per creare un report che mostra il dispositivo, la dimensione totale, lo spazio utilizzato e lo spazio disponibile, esegui:

df -H --output=source,size,used,avail

Questo stampa una tabella con le colonne selezionate:

Filesystem      Size  Used Avail
/dev/sda1       100G   65G   35G
/dev/sda2       500G  100G  400G

Comando du

Cos'è il comando 'du'?

Il comando du, abbreviazione di "disk usage", è un'utilità Linux che mostra le dimensioni di directory e file. A differenza del comando df che fornisce una vista generale dell'utilizzo del disco per file system, du ti permette di vedere lo spazio utilizzato da directory e file specifici. Questo lo rende utile per scoprire quali sottodirectory e file stanno usando più spazio su disco sul tuo sistema Linux.

Come usare 'du'

Per usare du, fornisci come argomento la directory che vuoi analizzare:

du /home/user/Documents

Questo produce un elenco di tutte le sottodirectory in /home/user/Documents, insieme allo spazio su disco che ciascuna usa. Per impostazione predefinita, le dimensioni sono mostrate in kilobyte.

Per rendere l'output più facile da leggere, usa il flag -h per mostrare le dimensioni in formato leggibile (KB, MB o GB), e il flag -s per mostrare solo un riepilogo per la directory:

du -sh /home/user/Documents

Questo potrebbe produrre qualcosa come:

25G     /home/user/Documents

Mostrando che la directory /home/user/Documents e il suo contenuto usano in totale 25 gigabyte di spazio su disco.

Puoi anche usare du su singoli file per vedere il loro utilizzo del disco:

du -h /home/user/Documents/large-file.zip

Ad esempio, se hai un file video grande nella tua cartella Documents, potresti eseguire:

du -h /home/user/Documents/vacation-video.mp4

E ottenere un output come:

2.3G    /home/user/Documents/vacation-video.mp4

Mostrando che il file video occupa 2,3 gigabyte di spazio.

Trovare le directory più grandi con 'du'

Un uso comune per du è trovare le directory che stanno usando più spazio su disco. Anche se potresti controllare manualmente l'output per trovare le sottodirectory più grandi, è più facile combinare du con altri comandi per ordinare i risultati.

Per elencare le prime 10 sottodirectory nella directory corrente per dimensione, esegui:

du -a . | sort -n -r | head -n 10

Ecco cosa fa ogni parte del comando:

  • du -a .: Calcola l'utilizzo del disco di tutti i file e sottodirectory nella directory corrente (.). Il flag -a include i file oltre alle directory.
  • sort -n -r: Ordina l'output di du numericamente (-n) in ordine inverso (-r), quindi i numeri più grandi sono primi.
  • head -n 10: Prende le prime 10 righe dell'output ordinato.

Il comando completo ti fornisce un elenco delle 10 sottodirectory e file più grandi, che puoi poi esaminare ulteriormente per vedere se si può recuperare spazio.

Puoi anche specificare una directory diversa da cui partire:

du -a /home/user/Documents | sort -n -r | head -n 10 

Questo trova i primi 10 consumatori di spazio all'interno della directory /home/user/Documents e delle sue sottodirectory.

Ad esempio, supponiamo che la tua directory /home/user/Documents contenga queste sottodirectory:

/home/user/Documents/work
/home/user/Documents/personal
/home/user/Documents/photos
/home/user/Documents/music

Eseguire il comando sopra potrebbe produrre qualcosa come:

45G     /home/user/Documents/photos
30G     /home/user/Documents/music  
10G     /home/user/Documents/work
5G      /home/user/Documents/personal

Mostrando che le sottodirectory photos e music stanno usando più spazio.

Comando stat

Il comando stat mostra informazioni su un file, una directory o un file system, incluse dimensione, dimensione del blocco e utilizzo del disco.

Per usare stat, specifica il percorso del file, della directory o del dispositivo che vuoi analizzare. Ad esempio:

stat /home/user/Documents/file1.txt

Questo produrrà informazioni su file1.txt:

  File: /home/user/Documents/file1.txt
  Size: 4096            Blocks: 8          IO Block: 4096   regular file
Device: 10301h/66049d   Inode: 1234567     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    user)   Gid: ( 1000/    user)
Access: 2023-04-20 10:30:00.000000000 +0200
Modify: 2023-04-20 10:30:00.000000000 +0200
Change: 2023-04-20 10:30:00.000000000 +0200
 Birth: -

Da questo output, puoi vedere la dimensione del file (4096 byte), il numero di blocchi che occupa su disco (8) e altri metadati come permessi, proprietà e timestamp.

Puoi anche usare stat su una directory o un file system. Ad esempio:

stat /home/user/Documents

Questo mostrerà la dimensione e l'utilizzo del disco della directory /home/user/Documents, con altre informazioni.

Gli scenari in cui stat può essere utile includono:

  • Analizzare l'utilizzo del disco di un file o una directory specifica per identificare inefficienze di storage
  • Controllare i permessi e la proprietà dei file per risolvere problemi di accesso
  • Esaminare i timestamp dei file per determinare quando un file è stato modificato o accesso l'ultima volta

Esempio: Controllare Permessi e Proprietà dei File

Per controllare i permessi e la proprietà di un file, puoi usare stat:

stat /home/user/Documents/important_file.txt

L'output includerà i permessi e la proprietà del file:

Access: (0640/-rw-r-----)  Uid: ( 1000/    user)   Gid: ( 1000/    user)

In questo caso, il file ha permessi di lettura e scrittura per il proprietario (user), permessi di lettura per il gruppo (user) e nessun permesso per gli altri. Il proprietario e il gruppo sono entrambi "user" con UID 1000 e GID 1000.

Se i permessi o la proprietà non sono corretti, puoi usare chmod e chown per modificarli:

chmod 0644 /home/user/Documents/important_file.txt
chown user:group /home/user/Documents/important_file.txt

Questo imposta i permessi a -rw-r--r-- (lettura e scrittura per il proprietario, lettura per il gruppo e gli altri) e cambia il proprietario in "user" e il gruppo in "group".

Comando fdisk -l

Il comando fdisk -l viene usato per visualizzare informazioni sulle partizioni del disco e le loro dimensioni. Elenca le tabelle delle partizioni per tutti i dispositivi di storage collegati al sistema e mostra il layout del disco.

Eseguire fdisk -l come root (o con sudo) produrrà informazioni su ogni disco e le sue partizioni:

Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A1B2C3D4-E5F6-G7H8-I9J0-K1L2M3N4O5P6

Device       Start      End  Sectors Size Type
/dev/sda1     2048   206847   204800 100M EFI System
/dev/sda2   206848  2303999  2097152   1G Linux filesystem
/dev/sda3  2304000 31457279 29153280  14G Linux filesystem

Questo output mostra che /dev/sda ha una dimensione totale di 50 GiB e contiene tre partizioni: una partizione EFI System da 100 MB, una partizione Linux filesystem da 1 GB e una partizione Linux filesystem da 14 GB.

Il comando fdisk -l è utile per capire la struttura dei tuoi dispositivi di storage e le dimensioni delle partizioni. Può aiutare in operazioni come:

  • Identificare la dimensione totale e lo spazio libero su ogni dispositivo di storage
  • Determinare il layout e le dimensioni delle partizioni quando pianifichi una nuova installazione o ripartizionamento
  • Verificare che le partizioni siano configurate correttamente e allineate con il dispositivo di storage

Esempio: Identificare la Dimensione Totale del Disco e lo Spazio Libero

Per controllare rapidamente la dimensione totale e lo spazio libero di un disco, puoi combinare fdisk -l con grep e awk:

sudo fdisk -l /dev/sda | grep -e "Disk /dev/sda" -e "^$" | awk '{print $3 " " $4}'

Questo comando estrae le righe rilevanti dall'output di fdisk -l e mostra la dimensione totale del disco e l'unità:

50 GiB

Per calcolare lo spazio libero, sottrai lo spazio utilizzato (somma delle dimensioni delle partizioni) dalla dimensione totale del disco. Puoi automatizzare questo con uno script:

#!/bin/bash

disk="/dev/sda"
total_size=$(sudo fdisk -l $disk | grep "Disk $disk" | awk '{print $3}')
used_space=$(sudo fdisk -l $disk | awk '/^\/dev/ {sum += $5} END {print sum}')

free_space=$((total_size - used_space))
echo "Total size: $total_size bytes"
echo "Used space: $used_space bytes"
echo "Free space: $free_space bytes"

Questo script calcola la dimensione totale del disco, somma le dimensioni delle partizioni per ottenere lo spazio utilizzato e sottrae lo spazio utilizzato dalla dimensione totale per determinare lo spazio libero. L'output apparirà così:

Total size: 53687091200 bytes
Used space: 15728640000 bytes
Free space: 37958451200 bytes

Questo ti aiuta a valutare rapidamente lo spazio libero su un disco senza doverlo calcolare manualmente dalle dimensioni delle partizioni.

Combinare i Comandi per un'Analisi Dettagliata

Ordinare File e Directory per Dimensione

Puoi combinare il comando du con sort per elencare file e directory ordinati per il loro utilizzo del disco. Questo è utile per trovare i file e le directory più grandi.

Ad esempio, per ordinare i contenuti della directory Desktop per dimensione dal più grande al più piccolo, esegui:

du -h /home/user/Desktop| sort -rn

Il flag -h rende l'output facile da leggere, mentre sort -rn ordina i risultati numericamente (-n) in ordine inverso (-r).

Se vuoi vedere solo i risultati più grandi o più piccoli, puoi reindirizzare l'output a head o tail:

Comando Descrizione
du -h /home/user/Desktop \| sort -rn \| head -n 5 Vedere i 5 file/directory più grandi sul Desktop
du -h /home/user/Desktop \| sort -rn \| tail -n 5 Vedere i 5 file/directory più piccoli sul Desktop

Ecco un esempio di come potrebbe apparire l'output quando cerchi i 5 elementi più grandi:

4.0G    /home/user/Desktop/videos
1.5G    /home/user/Desktop/images
1.0G    /home/user/Desktop/project.zip
500M    /home/user/Desktop/music
100M    /home/user/Desktop/documents

Questo mostra che la directory videos sta occupando più spazio con 4,0 gigabyte, seguita da images con 1,5 gigabyte, e così via.

Filtrare i Risultati per Dimensione

Per trovare file più grandi di una certa dimensione, puoi combinare du con grep. Il comando grep cerca righe che corrispondono a un pattern.

Per trovare file nella directory Desktop che sono più grandi di 1 gigabyte, esegui:

du -h /home/user/Desktop | grep '^\s*[0-9\.]\+G'

Questo cerca righe che iniziano con (^) dello spazio bianco (\s*), seguito da una o più (+) cifre o punti ([0-9\.]), e finiscono con una G (per gigabyte).

Puoi cambiare la G con M per trovare file più grandi di un megabyte, o K per kilobyte:

# Trovare file più grandi di 100 megabyte
du -h /home/user/Desktop | grep '^\s*[0-9\.]\+M'

# Trovare file più grandi di 10 kilobyte  
du -h /home/user/Desktop | grep '^\s*[0-9\.]\+K'

Ad esempio, se esegui il comando per trovare file più grandi di 100 megabyte, potresti vedere un output come questo:

200M    /home/user/Desktop/presentation.ppt
150M    /home/user/Desktop/archive.tar.gz
120M    /home/user/Desktop/video.mp4

Questa tecnica è utile quando devi trovare file grandi che potrebbero occupare troppo spazio su disco.

Escludere File per Tipo

Quando analizzi l'utilizzo del disco, potresti voler escludere certi tipi di file dai risultati. Il comando du ha un flag --exclude che ti permette di saltare i file che corrispondono a un pattern.

Ad esempio, per ottenere l'utilizzo del disco della directory Desktop escludendo i file di testo, esegui:

du -h /home/user/Desktop --exclude="*.txt"

Questo calcolerà le dimensioni di tutti i file e sottodirectory come al solito, ma escluderà tutti i file che finiscono con .txt.

du -h /home/user/Desktop --exclude={"*.txt","*.jpg","*.png"}

Entrambi questi comandi analizzeranno l'utilizzo del disco saltando i file di testo, JPEG e PNG.

Usare --exclude è utile quando stai cercando di trovare file grandi da eliminare, ma sai che certi tipi di file dovrebbero esserci e non devono essere contati. Ad esempio, se hai una grande raccolta di foto, puoi escludere i file immagine per concentrarti su altri tipi di file che potrebbero occupare spazio inutilmente.

Casi d'Uso Pratici

Ecco alcune situazioni reali in cui combinare du con altri comandi può essere utile:

  • Liberare spazio su disco: Quando il tuo disco rigido ha poco spazio di storage, puoi usare du -h | sort -rn | head per identificare le directory e i file più grandi. Questo ti aiuta a decidere cosa eliminare o spostare su un altro disco per liberare spazio.

  • Preparare una migrazione del sistema: Prima di migrare i tuoi dati su un nuovo computer o disco, è una buona idea controllare l'utilizzo dello storage attuale. Comandi come du -h --exclude="*.bak" --exclude="*.tmp" ti permettono di ottenere un quadro preciso della dimensione dei tuoi dati escludendo file temporanei o di backup che non devono essere trasferiti.

  • Risolvere problemi di prestazioni: Se il tuo sistema è lento o certi processi impiegano molto tempo, potrebbe essere perché stanno elaborando file molto grandi. Usare du -h | grep '^\s*[0-9\.]\+G' può aiutarti a individuare file grandi che potrebbero causare problemi di prestazioni.

Comando ls -al

Il comando ls -al elenca i contenuti di una directory, inclusi i file nascosti, e mostra le loro dimensioni con altre informazioni. È utile per analizzare l'utilizzo del disco di file specifici all'interno di una directory.

Ad esempio, eseguire ls -al nella directory /home/user/Documents potrebbe mostrare un output come:

total 24
drwxr-xr-x 2 user user 4096 Apr 20 10:30 .
drwxr-xr-x 5 user user 4096 Apr 19 09:15 ..
-rw-r--r-- 1 user user 4096 Apr 20 10:30 file1.txt
-rw-r--r-- 1 user user 8192 Apr 20 10:15 file2.txt
drwxr-xr-x 2 user user 4096 Apr 19 15:45 subdirectory

Qui, ls -al fornisce un elenco della directory, mostrando i permessi dei file, la proprietà, le date di modifica e le dimensioni. Questo comando aiuta quando devi analizzare l'utilizzo del disco di singoli file all'interno di una directory.

Alcuni casi d'uso per ls -al includono:

  • Trovare file grandi che stanno occupando spazio su disco
  • Controllare i permessi e la proprietà dei file per garantire il controllo degli accessi
  • Confrontare le date di modifica dei file per vedere quali file sono stati aggiornati di recente

Esempio: Trovare File Grandi

Per trovare file grandi in una directory, puoi combinare ls -al con sort e head:

ls -al /home/user/Documents | sort -k 5 -n -r | head -n 5

Questo comando elenca i contenuti di /home/user/Documents, ordina l'output per la quinta colonna (dimensione del file) in ordine numerico inverso e mostra i primi 5 risultati. L'output mostrerà i file più grandi nella directory:

-rw-r--r-- 1 user user 1048576 Apr 20 11:00 large_file1.bin
-rw-r--r-- 1 user user  524288 Apr 20 10:45 large_file2.bin
-rw-r--r-- 1 user user  262144 Apr 20 10:30 large_file3.bin
-rw-r--r-- 1 user user  131072 Apr 20 10:15 large_file4.bin
-rw-r--r-- 1 user user   65536 Apr 20 10:00 large_file5.bin

Questo ti aiuta a identificare rapidamente i file più grandi che potrebbero consumare spazio su disco.