Il y a des outils que l’on utilise depuis des années. Ils ne font pas cinquante choses, n’ont pas une énorme interface Web et ne demandent pas de déployer dix conteneurs Docker… mais ils font parfaitement ce qu’on leur demande.
ncdu fait clairement partie de cette catégorie.
Je l’utilise depuis longtemps et il m’a souvent fait gagner un temps précieux pour répondre à cette grande question existentielle de l’administrateur système :
Mais qu’est-ce qui me bouffe tout l’espace disque ? 😅
ncdu, pour NCurses Disk Usage, est un analyseur d’utilisation disque qui fonctionne directement dans un terminal. On se connecte en SSH, on lance un scan et, quelques instants plus tard, on sait généralement où sont passés nos précieux gigaoctets.
Directement en SSH
Pas d’interface graphique, d’agent ou de service supplémentaire à déployer.
Le coupable en quelques minutes
L’arborescence est triée pour faire ressortir les fichiers et dossiers les plus lourds.
Un outil, deux branches
ncdu 1.x reste maintenu, tandis que ncdu 2.x apporte le scan parallèle et un nouvel export.
Le projet est développé par Yoran Heling, alias Yorhel, et distribué sous licence MIT. Son site officiel et son dépôt regroupent les téléchargements, la documentation et le code source.
1. Comprendre la différence entre ncdu 1 et ncdu 2
Petit détail intéressant : deux branches de ncdu sont maintenues en parallèle. La version proposée par votre distribution n’est donc pas forcément la branche 2.x.
ncdu 1.x
- ➡️ Branche historique écrite en C
- ➡️ Maintenue comme branche LTS
- ➡️ Très stable et largement disponible
- ➡️ Idéale pour les diagnostics classiques
ncdu 2.x
- ➡️ Réécriture moderne en Zig
- ➡️ Scan multithread depuis la version 2.5
- ➡️ Export binaire compressé depuis la version 2.6
- ➡️ Mieux adaptée aux très grosses arborescences
La version 1 n’est pas abandonnée
Installer ncdu avec APT peut encore fournir une version 1.x selon la distribution utilisée. Ce n’est pas un mauvais paquet : cette branche reste maintenue et suffit largement pour rechercher rapidement un répertoire trop volumineux.
2. Installer ncdu sous Linux
Selon la machine et le contexte, trois méthodes sont possibles : utiliser le paquet de la distribution, transférer un binaire sur un serveur isolé ou installer directement ncdu 2.
Méthode 1 : installer ncdu 1 avec APT
Sur Debian ou Ubuntu, l’installation classique reste extrêmement simple :
sudo apt update
sudo apt install ncdu
On vérifie ensuite la version installée :
ncdu --version
Puis on peut analyser le répertoire courant :
ncdu
Un chemin précis :
ncdu /var
Ou l’ensemble du système :
sudo ncdu /
Personnellement, sur un serveur, j’utilise généralement :
sudo ncdu -x /
L’option -x, ou --one-file-system, demande à ncdu de rester sur le même système de fichiers. C’est particulièrement pratique lorsqu’un serveur possède plusieurs volumes, des partages NFS ou CIFS et d’autres montages dans son arborescence.
La commande à garder sous la main
Pour un premier diagnostic, sudo ncdu -x / est généralement le meilleur point de départ : le
scan reste sur le filesystem racine et évite de partir explorer plusieurs téraoctets de stockage
réseau. 😅
Méthode 2 : équiper un vieux serveur sans Internet
C’est justement une situation dans laquelle ncdu m’a déjà bien dépanné.
Je me suis retrouvé sur un ancien serveur Red Hat, complètement isolé du WAN, sans possibilité de mettre à jour les dépôts ou d’installer tranquillement un paquet avec yum.
Dans ce cas, le principe est simple : récupérer un binaire statique sur une autre machine, le copier sur le serveur et le lancer directement.
Vérifier l’architecture
Sur le serveur :
uname -m
Par exemple :
x86_64
Depuis une machine connectée à Internet, téléchargez ensuite un binaire compatible depuis la page officielle des téléchargements, puis transférez-le :
scp ncdu utilisateur@serveur:/tmp/
Sur le serveur isolé :
chmod +x /tmp/ncdu
/tmp/ncdu -x /
Pour une intervention ponctuelle, il n’est même pas nécessaire d’installer réellement ncdu : on copie le binaire, on trouve les 150 Go de logs oubliés depuis 2018, puis on le retire. 😁
Pour le conserver :
sudo install -m 0755 /tmp/ncdu /usr/local/bin/ncdu
Pourquoi /usr/local/bin ?
/usr/local/bin est prévu pour les logiciels installés manuellement par l’administrateur. On
évite ainsi de mélanger ce binaire avec les fichiers gérés par apt, dpkg, rpm ou un autre
gestionnaire de paquets.
Méthode 3 : passer à ncdu 2 sans compiler Zig
Sur un serveur Linux récent, quitte à installer ncdu aujourd’hui, j’avais envie de regarder plus sérieusement du côté de ncdu 2.
Au moment de cette publication, la dernière archive source est ncdu 2.9.2. Elle doit être compilée avec une version compatible de Zig. Installer et gérer un compilateur uniquement pour obtenir un petit analyseur de disque… personnellement : non. 😅
Heureusement, le développeur fournit également des binaires Linux statiques officiels. La dernière version précompilée disponible est alors ncdu 2.9.1, avec des archives pour x86, x86_64, ARM et AArch64.
Versions relevées le 22 juillet 2026
Le projet peut publier une nouvelle version après cet article. Vérifiez toujours la
page officielle des téléchargements
Installer le binaire officiel de ncdu 2
L’exemple suivant concerne une machine Linux x86_64.
1. Vérifier l’architecture et la version existante
uname -m
ncdu --version
command -v ncdu
Si ncdu a été installé avec APT et que vous souhaitez le remplacer :
sudo apt remove ncdu
2. Télécharger ncdu 2.9.1
On travaille dans un répertoire temporaire :
cd /tmp
wget https://dev.yorhel.nl/download/ncdu-2.9.1-linux-x86_64.tar.gz
Si l’ancienne version installée par APT se trouvait dans /usr/bin/ncdu, Bash peut encore garder ce chemin en cache. Il faut alors réinitialiser sa table de hachage :
hash -r
Pourquoi Bash cherche encore dans /usr/bin ?
Sans hash -r, la commande ncdu peut continuer à pointer vers l’ancien binaire supprimé et
afficher -bash: /usr/bin/ncdu: Aucun fichier ou dossier de ce nom. Bash recherchera ensuite
correctement le nouveau binaire dans /usr/local/bin.
3. Extraire et installer le binaire
tar -xzf ncdu-2.9.1-linux-x86_64.tar.gz
./ncdu --version
sudo install -m 0755 ncdu /usr/local/bin/ncdu
ncdu --version
Voilà. C’est exactement comme ça que j’aime installer ce genre de petit outil.
3. Utiliser ncdu au quotidien
Une fois le scan terminé, la navigation se fait entièrement au clavier.
| Touche | Action |
| ---------------------- | ------------------------------- |
| `↑` / `↓` ou `j` / `k` | Naviguer dans la liste |
| `Entrée` / `→` | Entrer dans un répertoire |
| `←` | Revenir au répertoire parent |
| `s` | Trier par taille |
| `n` | Trier par nom |
| `i` | Afficher les informations |
| `d` | Supprimer l’élément sélectionné |
| `q` | Quitter |
La touche d supprime réellement
Sur un serveur de production avec un terminal ouvert en root, mieux vaut éviter le syndrome : «
Ah… ce n’était pas ce dossier-là. » Pour un simple diagnostic, activez le mode lecture seule -r
Analyser en lecture seule
L’option -r désactive la suppression depuis l’interface :
sudo ncdu -r -x /
Utilisée deux fois, elle désactive également l’ouverture d’un shell depuis ncdu :
sudo ncdu -rr -x /
Les fonctions intéressantes de ncdu 2
Scanner avec plusieurs threads
Depuis ncdu 2.5, plusieurs répertoires peuvent être parcourus en parallèle. Par exemple avec huit threads :
sudo ncdu -x -t8 /
Le scan parallèle n’est pas activé par défaut. Sur un SSD ou un NVMe contenant énormément de fichiers, il peut apporter un gain intéressant. Sur un vieux disque mécanique qui cherche déjà désespérément ses secteurs, huit threads ne vont pas forcément lui redonner une seconde jeunesse. 😅
Exporter un scan volumineux
ncdu 2.6 a introduit un format d’export binaire avec compression intégrée. Il fonctionne bien avec le scan parallèle et permet de parcourir une arborescence trop volumineuse pour tenir entièrement en mémoire.
sudo ncdu -x -t8 -O analyse.ncdu /
On ouvre ensuite le résultat sans rescanner le serveur :
ncdu -f analyse.ncdu
C’est pratique pour conserver l’état d’un serveur à un instant donné, lancer le scan pendant une fenêtre d’intervention ou analyser tranquillement plusieurs millions d’éléments.
Exclure ce qui est hors sujet
Pour ignorer un motif de fichier ou de répertoire :
sudo ncdu -x / --exclude 'backup-*'
Pour exclure un chemin monté, -x reste souvent le choix le plus simple. Si vous utilisez --exclude, gardez en tête que l’option attend un motif portant sur le nom d’une entrée, pas un chemin absolu arbitraire.
Collecter plus de métadonnées
L’option -e collecte notamment le propriétaire, les permissions et la date de modification, même s'il est plus consommateur de mémoire il est utile quand la taille seule ne suffit pas pour comprendre :
sudo ncdu -e -x /
Pour aller à l'essentiel
Voici le trio de commandes que j'utilise généralement
df -h --> vérifie l’espace disque
df -i --> vérifie les inodes
sudo ncdu -x / --> aide à comprendre qui est responsable du carnage 😁
Personnaliser l’interface de ncdu
ncdu permet de définir une configuration permanente afin de ne pas avoir à retaper les mêmes options à chaque lancement.
Sur un serveur, le plus simple est d’utiliser directement la configuration globale :
sudo nano /etc/ncdu.conf
Cela permet d’avoir la même configuration quel que soit l’utilisateur qui lance ncdu, y compris avec sudo.
Configuration globale
/etc/ncdu.conf
Elle s’applique par défaut à tous les utilisateurs du serveur.
Configuration personnelle
~/.config/ncdu/config
Elle permet à chaque utilisateur de remplacer les préférences globales.
Les options disponibles peuvent varier légèrement entre ncdu 1.x et ncdu 2.x. La documentation officielle complète est disponible ici :
Exemple de configuration avec ncdu 2
Voici par exemple la configuration que j’utilise pour avoir une interface un peu plus lisible :
--color dark-bg
--show-graph
--show-percent
--show-itemcount
--group-directories-first
--sort=disk-usage-desc
Meilleur contraste
Couleurs et barre graphique d’occupation.
Plus d’informations
Pourcentage utilisé et nombre d’éléments.
Répertoires en premier
Les dossiers sont regroupés avant les fichiers.
Tri décroissant
Les éléments les plus lourds apparaissent en tête.
Il suffit ensuite de lancer normalement :
ncdu
Ou, pour analyser le filesystem racine sans traverser les autres points de montage :
sudo ncdu -x /
Les préférences définies dans /etc/ncdu.conf seront automatiquement appliquées.
Les options de la commande restent prioritaires
Une option passée directement à ncdu remplace celle du fichier de configuration. L’option
--ignore-config permet également de lancer ncdu sans charger aucune préférence enregistrée.
Il est possible d’aller beaucoup plus loin dans la personnalisation : affichage des dates de modification, style des graphiques, mode lecture seule, ordre de tri ou encore affichage des tailles partagées avec ncdu 2.
Le plus simple reste de consulter la documentation correspondant à votre version pour connaître l’ensemble des options disponibles.
4. ncdu 1 ou ncdu 2 : lequel choisir ?
Pour moi, les deux ont toujours leur intérêt.
Diagnostic rapide
Le paquet de la distribution et ncdu 1.x suffisent largement.
Vieux serveur isolé
Choisissez un binaire statique adapté à son architecture.
Serveur et stockage récents
Préférez ncdu 2.x pour profiter de ses meilleures performances.
Très grosse arborescence
Utilisez ncdu 2.x avec -t et -O.
Le choix le plus simple reste souvent le bon
Si vous n’avez pas besoin du scan parallèle ou de l’export binaire, gardez simplement la version déjà fournie par votre système.
Sur beaucoup de serveurs, cette séquence reste suffisante :
sudo apt install ncdu
sudo ncdu -rr -x /
Sur une machine récente avec des millions de fichiers, ncdu 2 apporte en revanche de vrais avantages sans imposer de compilation grâce aux binaires statiques officiels.
5. Pour finir
ncdu fait partie de ces outils Linux que j’aime beaucoup : il est simple, léger et efficace.
Pas besoin d’une stack de monitoring complète pour répondre à une question toute simple :
Qu’est-ce qui remplit mon disque ?
Quand un serveur affiche fièrement /dev/mapper/root 100% et qu’il faut rapidement comprendre pourquoi, avant d’enchaîner du, find, sort, awk et grep dans une commande de trois kilomètres récupérée dans l’historique Bash d’un collègue parti depuis 2017… essayez simplement :
sudo ncdu -rr -x /
Parfois, il ne faut pas chercher plus compliqué. 😉
Liens officiels
-
Site officiel de ncdu
-
Téléchargements et checksums
-
Manuel de ncdu
-
Historique de ncdu 2.x
-
Dépôt officiel
Article basé sur la documentation officielle du projet ncdu et sur mon utilisation de l’outil en administration système.
Cet article vous a-t-il été utile ?
Votre retour aide à mieux choisir les prochains sujets.