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.