web-dev-qa-db-fra.com

Comment connaître les répertoires ou les fichiers des gourmands en espace?

Mon disque est à court d'espace:

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

J'aimerais parcourir tout le répertoire de base et connaître les 10 répertoires ou fichiers les plus encombrants, afin de décider qui doit être supprimé.

du -sh * peut voir la taille de tous les sous-répertoires, mais il n'obtient que le dossier en cours. Je pourrais avoir besoin de me diviser en plusieurs sous-répons et de manière récursive pour connaître les coupables dont j'ai besoin.

Y at-il un bon moyen de le faire?

11
Deqing

Si vous pouvez utiliser une interface graphique, essayez Baobab . C'est un outil graphique permettant d'analyser l'utilisation de l'espace disque.

5
Uwe Plonus

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 faible. C'est mon outil de navigation pour cela.

Vous devrez toujours plonger récursivement de cette façon, mais c'est un moyen facile et agréable de le faire.

10
Rob

du | trier -rn | tête

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

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 la sorte de graphique en ligne de commande montrant les répertoires qui consomment le plus d'espace en pourcentage.

Si vous souhaitez analyser le /home uniquement - vous pouvez le spécifier dans la commande comme suit:

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"}'

Ça va ressembler à ça: enter image description here

Tiré de ici .

9
mnmnc

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

De plus, mc dispose d’une fonction intéressante de calcul de la taille des sous-répertoires en appuyant sur Ctrl+Space sur le dessus (appuyez sur Ctrl+Space au-dessus de .. pour lui faire calculer la taille de tous les sous-répertoires. Ensuite, vous pouvez sélectionner le tri par taille dans le menu.

4
Stefan Seidel

Essaye ça:

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

Un autre favori de l'interface graphique: kdirstat

Il dispose de fonctionnalités d’exploration détaillée et de menus (extensibles) pour vous aider à supprimer/compresser vos fichiers.

J'ai aussi un script de ligne de commande que j'appelle dir_usage et que j'ai téléchargé sur Pastebin.

0
Rich Homolka