Comment puis-je calculer la taille d'un répertoire?


181

Comment connaître la taille d'un répertoire? Y compris les sous-répertoires et les fichiers.

Réponses:


230
du -s directory_name

Ou pour obtenir une sortie lisible par l'homme:

du -sh directory_name

L' -soption signifie qu'elle ne listera pas la taille de chaque sous-répertoire, mais uniquement la taille totale.


7
En réalité du, l'unité par défaut est constituée de blocs de 512 octets selon POSIX et de kilo-octets sous Linux (à moins que la variable d'environnement ne POSIXLY_CORRECTsoit définie) ou avec du -k.
Gilles

3
@ Gilles: bonne prise. J'ai supprimé le bit "nombre d'octets" de ma réponse.
sepp2k

1
a travaillé comme prescrit
skidadon

1
si le répertoire est très volumineux et comporte de nombreux sous-répertoires, cela prend beaucoup de temps ... presque 1 min .. est-ce normal? y a-t-il un moyen d'obtenir la taille plus rapidement?
Yeahman

2
Je devais calculer la taille de mon dossier "sac", du -sh baga parfaitement fonctionné!
António Almeida

7

Bien que l’utilisation d’un paquet séparé tel que ncdu puisse bien fonctionner, la même comparaison de plusieurs dossiers peut être faite, dans une certaine mesure, en donnant simplement une liste de dossiers à dimensionner. Par exemple, pour comparer les répertoires de niveau supérieur sur votre système ...

cd /    
sudo du -sh ./*

2
Plus simplement,du -sh /*
roaima


1
du -csh

-c produit le grand total


1
Le -cn'a pas de sens à utiliser avec -s, non? -saffiche uniquement la taille du répertoire spécifié, c'est-à-dire la taille totale du répertoire.
Andreas Storvik Strauman

1

Essayer

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

Cela aide à trouver des répertoires volumineux à parcourir en utilisant du -sh ./*


0

vous pouvez aussi utiliser ls -ldh:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-l est pour une longue liste; -d est destiné à afficher les informations de répertoire, pas le contenu du répertoire, -h est destiné à afficher la taille dans un format lisible par l'homme.


4
Ce n'est pas correct, la personne qui pose la question est clairement à la recherche de l'empreinte d'un répertoire et de son contenu sur le disque. La réponse de @ sepp2k est correcte.
Blong

1
La commande ls -ldh n'indique que la taille de la structure d'inode d'un répertoire. La métrique reflète la taille de la table d'index des noms de fichier, mais pas la taille réelle du contenu du fichier dans le répertoire.
linbianxiaocao

0

J'installe toujours le paquet "ncdu" et vois toutes les sorties de tous les répertoires avec une représentation graphique. En effet, j’ai généralement besoin de savoir ce qui occupe le plus d’espace disque sur mes machines, quel que soit le résultat de la synthèse d’un seul répertoire.

Utilisation: sudo ncdu /(Vous n’avez pas besoin sudode dossiers sur lesquels vous avez des droits de lecture).

L'analyse des statistiques d'utilisation du disque sur l'ensemble du système de fichiers prendra un certain temps. Il a une belle représentation graphique en ligne de commande et inclut une navigation au clavier à l'aide des touches fléchées, comme pour aller plus en profondeur ou plus haut dans le chemin balayé. Vous pouvez également supprimer des éléments en appuyant sur D.



0

du -hd1

listera dans un format lisible par l’homme les tailles de tous les répertoires, par exemple

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config

0

J'ai essayé avec la commande ci-dessous car déjà la meilleure réponse a été fournie

sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

sortie

 sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

679445
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.