Comment trouver les plus grands répertoires ou les plus gros fichiers? [dupliquer]


33

Cette question a déjà une réponse ici:

Sous Linux, je cherche une commande pour répertorier le fichier le plus volumineux et / ou les répertoires les plus volumineux d'un répertoire.


L'outil le plus utile que j'ai trouvé est xdiskusage ( xdiskusage.sourceforge.net ). Il montre graphiquement l'emplacement des fichiers - par taille. Excellent outil! (et ça marche directement avec X11)
jcoppens

Comment ceci est-il dupliqué d'une question qui a été fermée comme hors sujet? Ça n'a pas de sens.
Kenorb

Réponses:


17

De n'importe quel répertoire:

du -a | sort -n -r


1
cela montre des fichiers individuels, mais la question concerne aussi les répertoires
knocte

du sans arguments récapitule l'utilisation du disque par répertoires. du avec -a produit les mêmes informations de répertoire et inclut l'utilisation du disque pour des fichiers individuels.
Brent Worden

ne peut pas faire le tri lorsque vous êtes à court d'espace: = (
Jonathan Henson

28

La commande suivante vous montre un niveau de répertoires et leur taille

du --max-depth = 1 / chemin | trier -r -k1,1n

Si l'un d'entre eux dépasse vraiment (le dernier de la liste est le plus gros dû à sort -r), vous relancez la commande dans 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


le plus grand nombre finit en bas pour moi peu importe si j'ajoute sort -rou non. Y at-il un moyen d'obtenir le plus grand nombre au sommet?
squarecandy

Vous devez indiquer pour trier quelle colonne vous souhaitez trier et qu'elle est numérique (non alphanumérique). C'est ce que ferait -k1,1rn. Par défaut, le tri utilise le tri alphanumérique sur la première colonne.
Marcin

Oui, le tri est correct avec ça, mais c'est dans l'ordre croissant, peu importe le nombre, peu importe si j'inclus sortou sort -r. Est-ce que je ne comprends pas comment ça marche? Je suppose que ce n'est pas un gros problème. Votre exemple est très utile et m'a fourni les informations dont j'avais besoin.
squarecandy

2
Avec l' option sortI have ( sort (GNU coreutils) 8.13Ubuntu 12.04.3), l'option -rne fonctionne pas si elle -nsuit immédiatement -k( -k1,1n). Cette commande d'options fonctionne: sort -rnk1,1.
Pabouk

27

Un utilitaire appelé ncduvous donnera les informations que vous recherchez.

sudo apt-get install ncdu

Sous OS X, il peut être installé avec Homebrew:

brew install ncdu

2
+1 Je n'avais jamais entendu parler de celui-ci auparavant - fonctionnait également très bien sur Mac.
Andrew E

C'est une solution bien plus intéressante que les deux réponses plus élevées.
AlexLordThorsen

C'est époustouflant. Suggérez ceci à toutes les autres réponses!
Allen Gingrich

4

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.


2

Ce post vous aidera bien:

cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10

2

La commande suivante renverra les 10 plus gros fichiers de /path

du -a -h / chemin | trier -h -r | tête -n 10

J'aime utiliser les -hoptions pour la lisibilité. Les deux duet ont sortbesoin d'avoir -h.


1

Utilisation

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

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


0

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

du | sort -n

0

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 pour fonctionner correctement sur OSX / BSD (comme ce sortn’est pas le cas -h), vous devez installer à sortpartir 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'

-5
du -sh /path * | sort -nr | grep G

G pour GIG (pour éliminer les plus petits) fichiers / répertoires


Ceci répertorie tous les fichiers et dossiers, en indiquant leur taille. Il ne trie pas la taille en octets K, M ou G, sauf si vous GREP comme vous l'avez montré
Canadian Luke REINSTATE MONICA

En outre, il trouvera n'importe quoi avec un Gdans le nom du fichier.
Kevin Panko
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.