← retour aux snippets

du: trouver les gros dossiers

Identifier rapidement les répertoires et fichiers qui consomment le plus d'espace disque.

bash système #du#disk#cleanup#cli

objectif

Lister les dossiers et fichiers les plus volumineux pour récupérer de l’espace disque en toute sécurité, sur Linux et macOS.

code minimal

# top 20 des plus gros éléments (tailles en KB, portable Linux/macOS)
du -sk ./* 2>/dev/null | sort -n | tail -n 20

utilisation

# Linux (GNU coreutils): tailles lisibles + profondeur 1, tri natural
du -h --max-depth=1 . | sort -h | tail -n 20

# macOS/BSD: fallback portable (KB) puis formatage en MB lisibles
du -sk ./* 2>/dev/null | sort -n | tail -n 20 | awk '{printf "%.1fM\t%s\n", $1/1024, $2}'

# rester sur le même filesystem (évite de traverser des montages)
du -x -sk ./* 2>/dev/null | sort -n | tail -n 20

# top 20 plus gros dossiers (toutes profondeurs) avec find + du (portable)
find . -type d -print0 \
  | xargs -0 -I{} du -sk {} 2>/dev/null \
  | sort -n | tail -n 20

# top 20 plus gros fichiers (>100M)
find . -type f -size +100M -print0 \
  | xargs -0 -n1 du -sk 2>/dev/null \
  | sort -n | tail -n 20 | awk '{printf "%.1fM\t%s\n", $1/1024, $2}'

variante(s) utile(s)

# exclure certains dossiers (ex: .git, node_modules)
find . -mindepth 1 -maxdepth 1 -not -path './.git' -not -path './node_modules' -print0 \
  | xargs -0 -I{} du -sk {} 2>/dev/null | sort -n | tail -n 20

# analyser un disque monté spécifique
du -h --max-depth=1 /mnt/data | sort -h | tail -n 20  # Linux
du -sk /Volumes/Data/* | sort -n | tail -n 20        # macOS

# résumé total d'un dossier
du -sh .

# repérer l'espace "fantôme" (fichiers supprimés mais encore ouverts)
sudo lsof +L1

notes

  • sur Linux, préférez du -h --max-depth=1 | sort -h pour une sortie lisible et tri correct.
  • sur macOS, sort -h n’est pas disponible par défaut; utilisez la variante en KB ou formatez avec awk comme ci-dessus.
  • -x empêche de traverser les points de montage (utile sur serveurs avec partitions multiples).
  • lsof +L1 révèle des fichiers supprimés mais toujours ouverts par un processus; redémarrez le service concerné pour libérer l’espace.