Sous Linux, je cherche une commande pour répertorier le plus gros fichier et/ou le plus grand répertoire dans un répertoire.
De n'importe quel répertoire:
du -a | sort -n -r
La commande suivante vous montre un niveau de répertoires et leurs tailles
du --max-depth = 1/chemin | trier -r -k1,1n
Si l'un d'entre eux dépasse vraiment (le dernier sur la liste est le plus grand en raison de sort -r
), vous exécutez à nouveau la commande sur ce répertoire, puis continuez jusqu'à ce que vous trouviez le répertoire/fichier incriminé.
Si vous ne voulez que les dix plus gros fichiers,
find/home -type f -exec du -s {} \; | trier -r -k1,1n | tête
Un utilitaire appelé ncdu
vous donnera les informations que vous recherchez.
Sudo apt-get install ncdu
Sous OS X, il peut être installé avec Homebrew:
brew install ncdu
du -sk * | trier -nr | tête -1
Cela montrera le plus grand répertoire/fichier dans un répertoire en ko. Si vous modifiez la valeur de la tête, vous obtiendrez les x meilleurs fichiers/répertoires.
Ce message vous aidera bien:
cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10
La commande suivante renverra les 10 plus gros fichiers de /path
donné
du -a -h/chemin | trier -h -r | tête -n 10
J'aime utiliser les options -h
pour plus de lisibilité. du
et sort
doivent avoir -h
.
Utilisation
ls -A | xargs -I artifact du -ms artifact | sort -nr
Vous pouvez éventuellement ajouter un tuyau et utiliser head -5
Utilisez du. Essayez ceci pour commander le résultat:
du | sort -n
Essayez la ligne suivante (affiche les 20 plus gros fichiers du répertoire en cours):
ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20
ou avec des tailles lisibles par l'homme:
ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20
La deuxième commande fonctionnant correctement sur OSX/BSD (étant donné que
sort
n'a pas-h
), vous devez installersort
à partir decoreutils
.
Il est donc utile d’avoir ces alias dans vos fichiers rc (chaque fois que vous en avez besoin):
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'