web-dev-qa-db-fra.com

Système de fichiers complet: comment trouver les plus gros répertoires ou les plus gros fichiers?

Sous Linux, je cherche une commande pour répertorier le plus gros fichier et/ou le plus grand répertoire dans un répertoire.

32
Eric V

De n'importe quel répertoire:

du -a | sort -n -r

17
Brent Worden

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

28
Marcin

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
26
David Pratt

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.

4
Sridharpp

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
2
Matz

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.

2
Jiang

Utilisation

ls -A | xargs -I artifact du -ms artifact | sort -nr

Vous pouvez éventuellement ajouter un tuyau et utiliser head -5

1
Abhishek

Utilisez du. Essayez ceci pour commander le résultat:

du | sort -n
0
Heisenbug

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 installer sort à partir de coreutils.

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'
0
kenorb