Trouver ce qui utilise tout l'espace dans * nix


21

Quelle séquence de commandes me dira quels fichiers sont les plus importants à partir d'un répertoire particulier, y compris tous les sous-répertoires? Je veux savoir où est passé tout l'espace.

De préférence juste avec des commandes unix'y régulières.

Si possible, essayez de le garder compatible avec Sun OS 5.10 (peut-être en plus des réponses Linux régulières, pas en remplacement, pour le garder aussi général que possible.)


Il y a deux voix pour SU et deux pour SF. Quelle est la plus appropriée? Cela pourrait appartenir à l'un ou l'autre, à mon avis.
mmyers

5
@mmyers: l'a donné à SU ... SU a besoin de vraies questions!
Shog9

1
Mais SU a déjà une question très similaire! superuser.com/questions/9847/…
Jonik

Réponses:


11

Personnellement, j'aime utiliser du -sh *pour voir la taille de chaque répertoire dans le répertoire actuel.

Vous pouvez également trier d'avoir de plus grands dossiers d' abord: du -shx * | sort -hr. Pour du:

  • -s, --summarize: afficher uniquement un total pour chaque argument
  • -h, --human-readable: tailles d'impression au format lisible par l'homme (par exemple, 1K 234M 2G)
  • -x, --one-file-system: ignorer les répertoires sur différents systèmes de fichiers

Pour sort:

  • -h, --human-numeric-sort: comparer des nombres lisibles par l'homme (par exemple, 2K 1G)

Ceci est en fait vraiment utile avec un mod mineur: du -s * | sort -nr.
Alex Budovski

5
Vous pouvez conserver les tailles de fichier dans un format lisible par l'homme avec du -sh * | sort -hr.
Jorge Israel Peña

du -shx * | sort -hrest bon mais il ne renvoie que le répertoire courant. Comment pourrais-je faire ce système à l'échelle? Et comment pourrais-je exclure tout ce qui est inférieur à 100 Mo? Merci.
tem

Cela dépend de son invocation à la coquille. C'est *ce qui le rend applicable à tout dans le répertoire actuel, mais vous pouvez tout aussi facilement le changer par exemple some/other/path/*, ou si vous voulez simplement l'exécuter sur un seul répertoire dans son ensemble, puis omettre le *modèle glob. Quant au filtrage, posez peut-être une question distincte.
Jorge Israel Peña

Pour l'exécuter récursivement à l'échelle du système, vous pouvez le coupler findà une racine de répertoire et utiliser son -execparamètre pour l'invoquer du. Le findprogramme lui-même peut probablement filtrer en fonction de la taille du fichier avec quelque chose comme size +100M. Voir cette question . Peut-être quelque chose comme find / -size +100M -exec du -sh {} \; | sort -hr, bien que ce ne soit pas testé.
Jorge Israel Peña


5

en gros, vous pouvez utiliser la commande du. quelque chose comme ça

du -a /home | sort -rn |head -1

veuillez consulter la page de manuel ou info du pour plus d'options.

Ou, vous pouvez utiliser GNU find.

find /home/ -type f -printf "%s:%p\n" | sort -t":" -rn| head -1  

Est-ce que 'find' sur Sun OS 5.10 a une alternative que je peux utiliser pour -printf?
Alex Budovski

De plus, existe-t-il un moyen d'obtenir la première commande (du ...) pour filtrer les répertoires? Je ne suis vraiment intéressé que par les fichiers, comme avec votre deuxième commande.
Alex Budovski

5

Pas en ligne de commande mais toujours unix'y: kdirstat

Je l'utilise pour découvrir où tout l'espace est allé et je l'aime beaucoup mieux que Disk Usage Analyzer (aka Baobab). C'est l'une des rares applications KDE tolérées dans mon environnement GNOME ;-)

entrez la description de l'image ici

Selon kdirstat.sourceforge.net, il fonctionne sur Solaris.

Bien que KDirStat soit un programme KDE, il fonctionne correctement sur chaque bureau X11, c'est-à-dire qu'il fonctionne sur Linux, BSD et de nombreux autres systèmes de type Unix (Solaris, HP-UX, AIX, ...).


Dans ubuntu: k4dirstat et qdirstat. Le dernier plus à jour. Je n'aime pas qu'ils permettent de supprimer des dossiers
develCuy


3
du -a | sort -n

ferait le travail. En utilisant baobab (il fait partie des utilitaires gnome, il est donc probablement déjà installé sur votre système), vous obtenez une très bonne ventilation graphique de l'espace utilisé.


Une raison d'utiliser -g au lieu de -n? "N'utilisez cette option que s'il n'y a pas d'alternative; elle est beaucoup plus lente que --numeric-sort (-n) et peut perdre des informations lors de la conversion en virgule flottante." Gnu.org/software/coreutils/manual/html_node/…

@therefromhere: J'ai utilisé la page de manuel, qui n'est pas aussi détaillée que le site que vous avez lié. Je viens de choisir la première option qui fonctionnait pour le cas particulier. Mais tu as raison; J'ai modifié ma réponse. Merci!
balpha

3

Analyseur d'utilisation du disque

Si vous utilisez une distribution basée sur Debian / Ubuntu, deux interfaces graphiques sont disponibles dans les référentiels, que vous pouvez trouver en utilisant synaptique.

entrez la description de l'image ici


3
du . -ha | sort -hr
  • -a, --all: l'écriture compte pour tous les fichiers, pas seulement pour les répertoires
  • -h, --human-readable: tailles d'impression au format lisible par l'homme (par exemple, 1K 234M 2G)

1
Je trouve le fait que vous pouvez prononcer cette commande très divertissant. Ça a l'air drôle aussi.
jtbandes

2
-1, c'est faux. Le "-h" dans la commande the du interrompt le tri.

1
Ce n'est pas faux, tout simplement pas portable. -h est un GNUisme. Utilisez plutôt -k avec Sun OS.
Ludwig Weinzierl

+ Ludwig, je ne pense pas que vous ayez compris. En ajoutant -h, cela rend les nombres lisibles par l'homme, donc ce ne sont plus des nombres qui peuvent être utilisés par la commande sort. par exemple, les choses seraient triées comme ceci: "760K 784M 788K 860K 944K 985M" Cela devrait être du -ha | sort -hrou du -ha | gsort -hr(sur osx après l'installation des utilitaires de base)
Gerry

2

Commandant de minuit

Si vous voulez une sortie de liste avec une interface graphique et des options de navigation intéressantes, installez Midnight Commander ( mcdans la plupart des gestionnaires de packages) et cochez «afficher les tailles de répertoire» dans le menu de commande. Vous pouvez également Ctrl+ space.

entrez la description de l'image ici

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.