Nel post di qualche giorno fa ho presentato du
, un comando per il Terminale che consente di visualizzare lo spazio occupato sul disco da una data cartella e da tutte le cartelle contenute al suo interno. Se la cartella in questione è la vostra Home
, potrete usare du
per visualizzare rapidamente lo spazio occupato da tutti i vostri file ed eventualmente intervenire per cancellare o spostare ciò che non vi serve.
Il comando du
può essere usato anche per visualizzare le dimensioni delle cartelle al di fuori della Home
che contengono il sistema operativo, i file di supporto, le applicazioni e così via, ma per farlo dovete disporre di un account amministrativo e premettere a du
il solito comando sudo
, che vi fa diventare l’amministratore onnipotente del sistema. Finché vi limitate a guardare non c’è nessun pericolo, ma non provate a cancellare i file al di fuori dalla vostra Home
a meno che non sappiate esattamente cosa state facendo.
Interfacce testuali
Il comando du
è installato di default in macOS e va usato nel Terminale spostandosi nella cartella di interesse con cd
ed eseguendo du
seguito dagli opportuni switch. In alternativa, si può aggiungere alla fine del comando il percorso completo della cartella che ci interessa, come ho fatto qui,
ma personalmente trovo più comodo spostarmi prima nella cartella di interesse e poi eseguire du
.
Con un minimo di pratica controllare una o l’altra cartella a colpi di cd
e du
è velocissimo, in particolare grazie alle funzioni di autocompletamento già presenti in bash
e diventate ancora più efficienti in zsh
(che da alcuni anni è la shell di default di macOS).
Tuttavia, mi rendo conto che molti utenti sono intimiditi dal Terminale e dalla necessità di inserire i comandi a mano. Pertanto, in questa seconda parte voglio presentare alcuni strumenti dotati di un’interfaccia testuale o grafica, che consentono di eseguire le stesse operazioni di du
in modo più comodo e interattivo, mantenendo sempre un livello di efficienza ben maggiore rispetto a quanto è consentito dal Finder.
Disk Usage Analyzer
Primo fra tutti dua
, ovvero Disk Usage Analyzer, che nella sua forma di normale comando da Terminale è più o meno un clone semplificato di du
. Ma dua
cambia pelle quando viene usato in modo interattivo, facendo cioè seguire il comando principale dal sottocomando interactive
(o più semplicemente i
),
% dua interactive
che disegna sul Terminale una interfaccia utente testuale che permette di muoversi fra una directory e l’altra tramite i tasti freccia (oppure, per gli adepti di vi
, anche con i tasti j
/k
/l
/h
). Il tasto q
permette di uscire dall’applicazione e il tasto ?
richiama l’help in linea, con la spiegazione degli altri comandi disponibili.
Il modo più semplice per installare dua
sul Mac è tramite Homebrew, il “gestore di pacchetti mancati per macOS” di cui ho scritto parecchio alcuni anni fa. Installare Homebrew è un attimo, basta eseguire nel Terminale (chi vuole informazioni più dettagliate può dare una occhiata qui)
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew installerà un nuovo comando brew
, che permetterà a sua volta di installare non solo dua
,
% brew install dua-cli
ma anche un gran numero di altri pacchetti e strumenti utili per lo sviluppo e la gestione del sistema che girano prevalentemente nel Terminale.
Homebrew ha parecchie altre funzioni interessanti, che meritano di essere discusse in un articolo specifico.
NCurses Disk Usage
NCurses Disk Usage, ovvero ncdu
, è un’applicazione molto simile alla versione interattiva di dua
, ma questa volta la sua interfaccia testuale è realizzata tramite la notissima libreria ncurses
.
Per installare ncdu
basta eseguire,
% brew install ncdu
che installerà automaticamente anche la libreria ncurses
se non è già presente sul Mac.
Ad ogni avvio ncdu
scansiona il contenuto della cartella di cui deve calcolare le dimensioni, una processo che con le cartelle più grosse può durare anche diversi secondi,
e solo alla fine dell’analisi mostra l’interfaccia testuale del programma (dua
invece fa il contrario, prima mostra l’interfaccia e poi esegue la scansione).
Lo schema di colori di default di ncdu
è poco azzeccato, ma basta eseguire
% ncdu --color dark
per utilizzare una combinazione di colori decisamente migliore (questione di gusti, naturalmente).
Dust
Dust è focalizzato su una cosa sola: mostrare quali sono le cartelle che occupano più spazio all’interno della cartella di lavoro, quali sono le sottocartelle più grandi contenute all’interno di queste, e così via.
Anche dust
si installa con Homebrew,
% brew install dust
e come ncdu
scansiona l’intera cartella di lavoro all’avvio, per poi mostrare i risultati con un istogramma che riporta la dimensione relativa delle cartelle più grandi rispetto alla cartella che le contiene (ecco perché il totale non fa 100%).
Una lunga serie di switch permette di modificare il comportamente di dust
o di renderlo più simile a du
. Ad esempio, eseguendo
% dust -t
dust
mostra lo spazio occupato da ciascun tipo di file,
una cosa molto utile per individuare rapidamente gli eventuali file inutili che occupano molto spazio.
Un’altro switch utile è -r
,
% dust -r
che inverte l’ordine di visualizzazione delle barre dell’istogramma, che ora vengono mostrate più razionalmente dalla più grande alla più piccola.
Interessante, infine, lo switch -L
% dust -L
che permette di seguire i collegamenti simbolici.
Nel mio caso specifico questa opzione potrebbe mostrare oltre al contenuto del disco principale, anche le cartelle presenti sul disco esterno, che sono collegate al disco principale proprio attraverso una serie di collegamenti simbolici. Dico potrebbe, perché dopo che dust
ha indicizzato più di 160 milioni di file, zsh
decide che ne ha abbastanza e uccide il processo. Nessun problema, invece, se provo ad analizzare direttamente il disco esterno.
Evidentemente oltre un certo limite dust
ha delle difficoltà a seguire in modo efficiente i collegamenti simbolici. Peccato!
Go Disk Usage
Go Disk Usage, cioè gdu
, come è evidente già dal nome è sviluppato in Go, un linguaggio di programmazione di casa Google, e si installa con il solito Homebrew
% brew install gdu
Anche gdu
all’avvio fa la solita scansione preliminare della cartella di cui deve calcolare le dimensioni e solo alla fine mostra la sua interfaccia testuale,
che già alla prima occhiata sembra più rifinita di quella di dua
e ncdu
. Anche la scelta dei colori mi pare più azzeccata. L’uso dei tasti freccia per spostarsi da una cartella all’altra (in aggiunta ai soliti j
/k
/l
/h
alla vi
), e l’help in linea compatto ma molto chiaro, richiamabile in ogni momento con il tasto ?
, rendono l’uso del programma molto più intuitivo rispetto agli altri (provare per credere).
Ammetto che prima di provarlo non avevo delle grosse aspettative, invece gdu
ha dimostrato fin da subito di essere un gran bel programma.
Cosa scegliere?
In effetti non c’è bisogno di scegliere, tutte le utility appena descritte consumano pochissimo spazio e possono convivere tranquillamente sul Mac, scegliendo di volta in volta quella che ci aggrada di più.
Ma se dovessi fare una classifica metterei al primo posto Go Disk Usage, che funziona benissimo, è veloce quanto basta, permette di muoversi con grande facilità fra una cartella e l’altra e, concedetemelo, ricorda pure l’indimenticabile Norton Commander dei tempi del DOS e il suo clone moderno, Midnight Commander, che per anni ed anni è stato una presenza costante sui miei computer.
Menzione d’onore per dust
, che fa una cosa sola ma la fa davvero molto bene.
Interfacce grafiche
E se il Terminale proprio non vi va proprio giù e volete usare a tutti i costi uno strumento con una interfaccia grafica? Anche qui in teoria c’è solo l’imbarazzo della scelta, ma alla fine (spoiler!) il vincitore è solo uno, e con un bel distacco.
GrandPerspective
Che dire di GrandPerspective? Che funziona bene, che è facile da usare, che ha una interfaccia grafica chiara e flessibile e infine che può essere scaricato gratuitamente da SourceForge oppure, pagando la cifra irrisoria di 3 caffè, anche dall’AppStore.
GrandPerspective mostra i file contenuti nella cartella selezionata al momento dell’esecuzione,
utilizzando la tecnica delle treemap (mappe ad albero), che ha una storia che risale a più di trent’anni fa e che è stata implementata per la prima volta su un… scommettiamo che lo sapete?
Se provo ad analizzare la cartella contenente i post di questo blog (la stessa cartella che ho usato nella prima parte di questo articolo), ottengo un risultato piuttosto banale,
dove il file più grosso è .DS_Store
, che gestisce la disposizione dei file nelle finestre del Finder, mentre tutti gli altri file hanno dimensioni microscopiche che vanno dai 4 ai 24 kB. Sulla sinistra, in un altro colore, sono messi in evidenza i file contenuti nella cartella annidata TODO
.
Cliccando sull’icona Info
in alto a destra, si apre una finestra contenente parecchie informazioni utili sulla cartella analizzata, tramite la quale è anche possibile modificare in modo interattivo, tramite la scheda Display
, la palette di colori usata per la visualizzazione dei dati e il metodo di attribuzione dei colori stessi.
Ma usare GrandPerspective su una cartella piccola e poco strutturata come questa non ha molto senso. Mi basta però ripetere l’analisi sulla mia Home
per ottenere l’immagine seguente, molto più interessante, dove è evidente che il file di gran lunga più grande è uno degli ultimi aggiornamenti dell’iPhone.
Quando la cartella in esame contiene tanti file di tipologia diversa diventa molto utile poter cambiare le modalità di visualizzazione dei file, una cosa facilissima da fare in GrandPerspective tramite la finestra Info > Display
. Questo ad esempio è quello che ottengo se scelgo di colorare i risultati in base al tipo di file.
Inutile spendere troppe altre parole, GrandPerspective è davvero un gran bel programma e lo consiglio senza riserve.
DaisyDisk
DaisyDisk costa 11.99 euro, una cifra in sé più che onesta ma che sembra comunque un po’ sproporzionata rispetto a GrandPerspective, e la versione trial scaricata dal sito richiede di essere attivata via email prima di poter essere usata.
Il programma utilizza una modalità di visualizzazione diversa rispetto a quella di GrandPerspective, che assomiglia ad un grafico a torte agli steroidi, dove ogni cerchio concentrico rappresenta un livello di cartelle annidate. All’avvio DaisyDisk propone di scansionare uno dei dischi collegati al Mac, ma tramite il menu Action
si può anche decidere di analizzare una singola cartella.
Anche se il metodo di visualizzazione di DaisyDisk è graficamente più bello di quello di GrandPerspective, nei fatti è molto meno efficace sia da navigare che da analizzare. Se a questo si aggiunge il prezzo più alto, trovo davvero poche ragioni per sceglierlo rispetto al concorrente.
OmniDiskSweeper
OmniDiskSweeper in teoria non supporta le versioni più recenti di macOS, ma l’ultima versione disponibile (la 1.14) gira senza problemi in Monterey. Come DaisyDisk, all’avvio OmniDiskSweeper propone di analizzare uno dei dischi collegati al Mac, ma tramite il menu File
è possibile scansionare anche le singole cartelle.
In ogni caso, OmniDiskSweeper è solo una versione graficamente più gradevole di du
, e se a questo si aggiunge il fatto che non viene più sviluppato da tempo, mi pare che abbia poco senso continuare ad usarlo.
Non è finita qui
E per finire, qualche breve cenno per alcuni software di analisi del contenuto del disco che si trovano facilmente su internet ma che, secondo me, sono meno interessanti.
-
Dude where are my bytes, ovvero
duc
(mi sfugge il senso dell’acronimo ma non importa) è un programma grafico per il Terminale che si installa con il solito Homebrew insieme ad un bel numero di librerie di supporto. Purtroppo non c’è verso di farlo funzionare dal Terminale, e pare che il problema non riguardi solo macOS ma anche Linux. In più il metodo di visualizzazione usato daduc
assomiglia molto a quello di DaisyDisk (che non mi piace), per cui non mi pare che abbia senso perdere tempo per provare ad usarlo. -
Space Gremlin, si trova sull’App Store e utilizza una modalità di visualizzazione dei file molto simile a quella di GrandPerspective. Ma non viene aggiornato da almeno 8 anni, per cui potrebbe servire solo a chi ha un Mac d’epoca su cui gira una vecchia versione di macOS.
-
PurpleTree, disponibile anch’esso sull’AppStore alla modica cifra di 2.99 euro. Sembra bello, ma le informazioni sul programma sono molto scarse, il sito dello sviluppatore è irraggiungibile, c’è una sola recensione di un anno fa e il programma stesso non viene aggiornato da 1 anno. Posso fidarmi a dare in pasto i miei file ad un programma così?
-
SquirrelDisk è open source e multipiattaforma, una cosa che io apprezzo sempre moltissimo, ma che in questo caso impedisce di ottimizzare il programma per il sistema operativo in uso. Anche graficamente non è il massimo, francamente non vedo il motivo di usarlo sul Mac.
-
Space Radar, altro programma multipiattaforma, è scritto in Electron, una cosa che è di per se una garanzia di scarsa efficienza. E in effetti è proprio così, perché Space Radar si blocca tanto spesso da diventare irritante. Peccato, perché se fosse più stabile potrebbe diventare una alternativa interessante a GrandPerspective.
- JDiskReport richiede Java, che non è disponibile sul mio Mac su cui ho installato da poco Monterey da zero, né ho voglia di doverlo installare solo per provare JDiskReport. Se qualcuno l’ha fatto può scrivere le sue impressioni nei commenti.
Conclusioni
Finisce qui questa lunga carrellata alle prese con du
e affini. Analizzare lo spazio occupato dai nostri file sul Mac è una operazione che non si fa ogni giorno, ma quando serve (e prima o poi servirà) è bene essere preparati e sapere quale strumento usare.
Serve per conoscere meglio il vostro computer, ma serve anche per evitare di ritrovarsi nella stessa spiacevole situazione di un collega (ed amico) della settimana scorsa, con il computer bloccato per mancanza di spazio sul disco e una scadenza urgente da rispettare a tutti i costi. Meglio, molto meglio, non dover ripetere la sua esperienza.