Comment trouver les répertoires ou fichiers les plus gourmands en espace?


11

Mon disque manque d'espace:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda7       803G  715G   48G  95% /home

Je voudrais parcourir tout le répertoire personnel et découvrir les 10 principaux répertoires ou fichiers consommant beaucoup d'espace, pour décider qui supprimer.

du -sh *peut voir la taille de tous les sous-répertoires, mais il obtient uniquement le dossier actuel. Je devrais peut-être me diviser en plusieurs sous-répertoires respectivement et récursivement pour savoir qui sont les coupables dont j'ai besoin.

Y at-il un bon moyen de le faire?

Réponses:


5

Si vous pouvez utiliser une interface graphique, essayez Baobab . Il s'agit d'un outil graphique pour analyser l'utilisation de l'espace disque dur.


10

ncdu est une option de ligne de commande qui analyse les répertoires et répertorie l'utilisation du disque du plus élevé au plus bas. C'est mon outil de prédilection pour cela.

Vous devrez toujours plonger de manière récursive de cette façon, mais c'est une belle façon facile de le faire.


9

Utilisez cette commande:

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du / –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

Il vous montrera le type de graphique en ligne de commande montrant les répertoires qui consomment le plus d'espace en pourcentage.

Si vous voulez analyser le /homeseul - vous pouvez le spécifier dans la commande comme ceci:

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du /home –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

Cela ressemblera à ça: entrez la description de l'image ici

Pris d' ici .


9

du | sort -rn | tête

  • du = Utilisation du disque
  • trier par ordre numérique, inverser
  • les dix premières lignes

4

+1 pour Baobab. sur la ligne de commande, j'utilise généralement juste du -hcsx *ou du -hcsx * | sort -h(nécessite une version récente de sort) et puis vérifie les sous-répertoires au fur et à mesure.

En outre, mca une fonctionnalité intéressante de calculer la taille des sous-répertoires en appuyant sur Ctrl+ Spaceau-dessus (appuyez sur Ctrl+ Spaceen haut de ..pour faire calculer la taille de tous les sous-répertoires. Ensuite, vous pouvez sélectionner trier par taille dans le menu.


2
sur la ligne de commande, vous devriez essayer ncdu. C'est un ncurses du, en gros.
Rob

1

Essaye ça:

du -a /dir | sort -nr | cut -f2 | xargs du -sh | head -n 10

0

Un autre favori de l'interface graphique: kdirstat

Il a de belles capacités d'exploration et un menu d'outils (extensible) pour vous aider à supprimer / compresser vos fichiers.

J'ai également un script de ligne de commande que j'appelle dir_usage que j'ai téléchargé sur pastebin.


-1
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

La ligne de commande ci-dessus fait ce qui suit (dans l'ordre):

  • Trouver tous les fichiers (pas les répertoires) dans le dossier actuel
  • Afficher l'utilisation de chacun d'eux
  • Trier les résultats numériquement
  • Utilisez uniquement les 10 dernières lignes (utilisation la plus élevée)
  • Découpez les 10 noms de fichiers (la première colonne correspond à l'utilisation, la seconde au nom de fichier)
  • Afficher l'utilisation de chaque nom de fichier (au format humain)

Cela se traduira par une liste des tailles lisibles par l'homme des 10 plus gros fichiers du dossier et des sous-dossiers actuels.


3
Pouvez-vous développer votre réponse?
50-3
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.