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?
Si vous pouvez utiliser une interface graphique, essayez Baobab . C'est un outil graphique permettant d'analyser l'utilisation de l'espace disque.
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.
du | trier -rn | tête
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:
Tiré de ici .
+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.
Essaye ça:
du -a /dir | sort -nr | cut -f2 | xargs du -sh | head -n 10