GNU/Linux – Présentation du paquet NCDU

Par le dans . Marqué comme , , , avec Un commentaire

GNU/Linux – Présentation du paquet NCDU

Salut la compagnie,

Après le billet nous permettant de corriger l’erreur des signatures non valables sous Ubuntu, je vais continuer sur ma lancée avec un article qui restera orienté « technique ».

Cet article aura pour objectif la présentation d’un petit outil que j’ai découvert il n’y a pas très longtemps et que je trouve plutôt sympathique !

En tant qu’administrateur système (professionnellement) et bidouilleur le reste du temps, je {travaille|geek} la plupart de mon temps sur des machines et autres serveurs dépourvus d’environnements graphiques.

Du coup, il peut être difficile de réaliser certaines tâches pourtant très simples, comme, contrôler la taille de différents fichiers et de vérifier lesquels prennent trop de place sur un disque dur ou une de ses partitions.

Qu’est-ce qu’on veut faire déjà ?!

Lister la taille des fichiers (et/ou répertoires) présents sur un disque dur le plus simplement possible, le tout en lignes de commandes.

Les outils déjà disponibles :

Alors OK, les plus initiés d’entre vous au monde obscur du Terminal me diront qu’il existe déjà pas mal de moyens de faire cela. Je vais d’ailleurs essayer d’en lister plusieurs ici, sans pour autant en faire une liste exhaustive bien entendu :)

Pour commencer, il y a bien évidemment la commande "du" qui fait le travail.
Cette commande permet d’évaluer l’espace disque occupé par des fichiers et elle le fait bien !

J’utilise la plupart du temps cette commande :

du -hc
Ou encore : du -shk

Avec les paramètres suivants : :

-c, --total
      Calculer le total général
-h, --human-readable
      Afficher les tailles dans un format lisible par un humain (1K 234M 2G)
-s, --summarize
      Afficher seulement un total pour chaque paramètre

Voici un exemple de résultat renvoyé par cette commande :

joel@sublimigeek:~/.mozilla$ du -sh
87M

Ou encore :

joel@sublimigeek:~/.mozilla$ du -hc
528K	./firefox/5qjo7e4t.default/indexedDB
8,0K	./firefox/5qjo7e4t.default/jetpack/.../simple-storage
12K	./firefox/5qjo7e4t.default/jetpack/FrEkQdQPI@jetpack
[...]
8,0K	./firefox/5qjo7e4t.default/webapps
87M	./firefox/5qjo7e4t.default
87M	./firefox
87M	.
87M	total 

C’est assez pratique mais ne permet pas forcément de lister de manière « visuelle » plusieurs répertoires et fichiers si par exemple nous souhaitons connaître quels sont les plus volumineux d’entre eux.

Pour répondre à ce besoin de « tri » par taille d’une liste de répertoires/fichiers, il peut être possible d’utiliser la ligne de commande suivante qui utilise « du » et se base ensuite sur « sort » :

du -h | sort -rh

Avec les paramètres suivants pour la commande sort :

-h, --human-numeric-sort
      Comparer des nombres dans un format lisible par un humain (2K 1G)
-r, --reverse
      Inverser le résultat des comparaisons

Voici un exemple de résultat retourné par cette commande :

cortexx@sublimigeek:~/.mozilla$ du -h | sort -rh
85M	.
20M	./extensions
14M	./adblockplus
3,8M	./bookmarkbackups
3,7M	./safebrowsing
3,0M	./extensions/{152455DE-7B40-4bcf-B5B4-C68A1BE85A91}
[...]
1,7M	./extensions/staged/{1018e4d6-728f-4b20-ad56-37578a4de76b}
1,1M	./extensions/{81BF1D23-5F17-408D-AC6B-BD6DF7CAF670}
1004K	./extensions/{6AC85730-7D0F-4de0-B3FA-21142DD85326}
876K	./extensions/{1018e4d6-728f-4b20-ad56-37578a4de76b}/chrome/flagfox
424K	./extensions/isreaditlater@ideashower.com
420K	./extensions/{3e0e7d2a-070f-4a47-b019-91fe5385ba79}/chrome
356K	./ghostery
[...]
80K	./colorzilla
20K	./extensions/wappalyzer@crunchlabz.com/content/xul
20K	./extensions/{152455DE-7B40-4bcf-B5B4-C68A1BE85A91}/chrome/chromeFiles/
12K	./ReadItLater
4,0K	./minidumps
4,0K	./gm_scripts

Cette ligne de commande répond déjà un peu mieux à notre besoin. Ce n’est pourtant pas si compliqué pourtant ?

Un outil magique ?! Mais qu’est-ce donc ?!

Après ces quelques essais, voici donc le fameux outil dont je souhaite vous parler :)
Il s’agit de NCDU. Petit logiciel que j’ai découvert alors que j’errais dans les méandres de la Toile …
Et vous allez voir, celui-ci est plutôt puissant !!

NCDU ?? Kézako ??

NCDU est un programme qui se base sur le fonctionnement de la commande "du" décrite un peu plus haut tout en ajoutant à celle-ci une notion de récursivité lui permettant de naviguer dans une arborescence.

Et le mieux dans l’histoire c’est qu’il affiche ses différents résultats dans une sorte de tableau bien organisé ce qui lui permet de répondre à notre besoin … que demander de plus ^^

Pour information, ncdu est à ce jour en version 1.8 :

joel@sublimigeek:~$ ncdu -v
ncdu 1.8

Et la liste de ses options n’est pas particulièrement longue ce qui en facilite son utilisation :

joel@sublimigeek:~$ ncdu -h

ncdu [-hqvx] [--exclude PATTERN] [-X FILE] directory

  -h                         This help message
  -q                         Quiet mode, refresh interval 2 seconds
  -v                         Print version
  -x                         Same filesystem
  -r                         Read only
  --exclude PATTERN          Exclude files that match PATTERN
  -X, --exclude-from FILE    Exclude files that match any pattern in FILE

La commande ncdu reprend donc le fonctionnement de la commande "du" tout en lui ajoutant une notion d’organisation des résultats qu’elle génère. Ce qui est tout de même une bonne chose car il faut bien l’avouer, la commande "du" a tendance à faire mal aux yeux lorsqu’on l’exécute dans un répertoire un peu costaud ^^

Comment ça s’installe ?!

Très simplement car le paquet « ncdu » est présent dans les dépôts officiels de plusieurs distributions bien connues.

Que cela soit sous Ubuntu ou sous Debian, la ligne de commande suivante est suffisante :

aptitude install ncdu

Utilisez apt-get si aptitude n’est pas présent sur votre machine et un utilisateur ayant les permissions nécessaires à l’installation d’un nouveau paquet sur votre système.

A quoi ça ressemble ?!

Voici un « petit » imprime écran de la commande ncdu exécutée dans un répertoire sur ma machine personnelle :

Liste de fichiers vidéos avec le paquet NCDU

Utilisation du paquet NCDU dans un répertoire contenant des fichiers vidéos

N’hésitez pas à cliquer sur l’image pour l’afficher en grand ^^

Comment ça s’utilise ?!

D’un point de vue « utilisation pure », ncdu est relativement simple à utiliser.
Par contre, une fois le programme exécuté, celui-ci prend en compte un nombre assez important de raccourcis clavier qui peuvent être bien utile selon les actions que l’on souhaite réaliser.

En voici une liste des principaux :

Raccourcis : Définition :
haut, k Déplacer le curseur vers le haut
bas, j Déplacer le curseur vers le bas
droite/entrée Ouvrir le répertoire sélectionné
gauche, < , h Ouvrir le répertoire parent
n Trier par nom (ascendant/descendant)
s Trier par taille (ascendant/descendant)
d Supprimer le fichier ou le répertoire sélectionné
t Affiche les répertoires avant les fichiers lors d’un tri
g Affiche la taille en pourcentage ou en graphique
a Basculer entre la taille apparente et l’utilisation du disque
e Affiche/masque les fichiers cachés ou exclus
i Affiche des informations concernant le fichier ou le répertoire sélectionné
r Recalcule la taille du répertoire courant
q Quitter ncdu

Alors sympa non ?

En tout cas, je trouve ce programme plutôt pas mal foutu et bien utile dans certains cas. A conserver bien au chaud dans sa trousse à outils, on ne sait jamais cela peut toujours être utile.

Si jamais vous avez d’autres astuces et programmes que vous utilisez régulièrement et qui ne sont pas très répandus, n’hésitez pas à les partager ici. Je pense que cela pourra aider les Sublimigeekiens qui passent par ici :)

Bonne continuation et vive le Terminal et la puissance qu’il procure, les interfaces graphiques c’est tellement sur-fait ^^

Source utilisée pour la rédaction de l’article :
– Le manuel en anglais du paquet NCDU => man ncdu

Sources des images utilisées en illustrations :
– Les images utilisées comme illustrations de ce billet sont des imprimes écrans réalisés par mes soins.

Un commentaire


N'hésitez pas, laissez un commentaire — DoFollow activé sur ce site —


« »