Comment vérifier la taille d'un répertoire avec Linux

Alors que la commande Linux ls peut afficher la taille des fichiers, elle ne fonctionne pas correctement avec les répertoires, qui seront toujours affichés comme 4096 octets. Vous devrez utiliser la commande du pour faire des recherches dans les sous-répertoires et afficher le total.


Utilisation de la commande "du"

Le meilleur remplacement de ls est d'utiliser du avec quelques drapeaux :

du -had 1

Le drapeau -h signifie "human readable" (lisible par l'homme) et formatera les tailles en Ko, Mo et Go.

L'option -a signifie "all", et inclura les fichiers individuels ainsi que les répertoires, ce qui est utile pour imiter le fonctionnement de ls.

L'option -d 1 est une limite à la profondeur à laquelle du imprimera les résultats. Par défaut, il est configuré pour imprimer chaque sous-répertoire, ce qui peut être pénible si vous avez beaucoup de fichiers imbriqués. Le drapeau -d les additionnera tous et imprimera le total pour chaque répertoire visible à partir duquel vous exécutez la commande.

Si vous préférez qu'elle liste chaque répertoire, vous pouvez lancer la commande avec l'option --apparent-size, qui affichera la taille totale de chaque sous-répertoire comme si vous aviez fait "Clic droit > Propriétés" dans votre explorateur de fichiers.

Tout ceci est cependant mélangé, donc si vous souhaitez afficher les plus grands répertoires dans le dossier actuel, vous pouvez diriger la sortie vers la commande sort. Assurez-vous d'utiliser également l'option -h, sinon la commande sort traitera 128 Mo comme un nombre plus grand que 1 Go.

du -had 1 | sort -rh

Par défaut, du utilise le répertoire courant, mais vous pouvez également cibler des répertoires spécifiques. Il suffit de passer l'emplacement en tant que dernier argument.

du -had 1 ./monrepertoire/


Trouver les répertoires qui prennent le plus d'espace sur votre serveur

Une tâche courante sous Linux est le débogage de grandes quantités d'utilisation de disque. Si vous souhaitez afficher l'utilisation totale pour chaque disque, vous pouvez utiliser df -h.
Cependant, cette méthode ne permet pas d'explorer les répertoires et ne trouvera pas la source du problème.

Pour cela, vous pouvez utiliser du, mais enlevez le drapeau -d 1 pour qu'il cherche dans tous les répertoires. Ciblez-le à la racine, triez-le, et filtrez les 25 premiers répertoires pour que votre écran ne soit pas surchargé.

du -ah / | sort -rh | head -n 10

Il se peut qu'il affiche quelques erreurs pour les fichiers auxquels il ne peut pas accéder ; assurez-vous de l'exécuter avec sudo.