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 -hpour une sortie lisible et tri correct. - sur macOS,
sort -hn’est pas disponible par défaut; utilisez la variante en KB ou formatez avecawkcomme ci-dessus. -xempêche de traverser les points de montage (utile sur serveurs avec partitions multiples).lsof +L1révèle des fichiers supprimés mais toujours ouverts par un processus; redémarrez le service concerné pour libérer l’espace.