Comment lister les tailles de fichiers récursives de fichiers et de répertoires dans un répertoire?

50

Comment lister tous les fichiers d'un répertoire et leurs tailles de fichier récursives?

---modifier

Je veux voir les tailles «cumulées» aux répertoires parents dans le répertoire répertorié. Je ne veux pas voir les répertoires enfants, ni leur contenu ou leur taille.

oeil de faucon
la source
1
Vous voulez dire que vous voulez voir la taille totale (somme) de tous les fichiers d'un dossier, comme cliquer avec le bouton droit de la souris sur un dossier de votre bureau et sélectionner "Propriétés"?
Pavlos G.
Êtes-vous à la recherche d'un logiciel qui vous aide à trouver de gros fichiers ou de quelque chose pour obtenir une arborescence de fichiers (compressible)?
Lekensteyn
Bonjour @Pavlos G - Je parle de la somme de chacun des répertoires du répertoire dans lequel je suis actuellement - et non de la somme de l'ensemble du répertoire.
hawkeye
@JG - Consultez ma mise à jour ;-)
Pavlos G.

Réponses:

53

Je suppose que le moyen le plus simple est de taper ls -lou de ls -lhfournir la taille du fichier dans un format lisible par l'homme (Ko, Mo, etc.).

Si 'récursivement' signifie la liste de tous les dossiers suivants, par exemple:

/ foo /
/ foo / bar / ....

Ensuite, vous devez également ajouter un paramètre R, comme ls -lRouls -lhR

Plus d'informations sur lspeuvent être trouvées en tapantman ls

Mise à jour:

La commande suivante proposée par Lekensteyn fera probablement l'affaire:

du -h --max-depth=1 <folder>

-hUne
--apparent-sizeautre façon d’afficher les tailles est celle qui est lisible par l’homme, comme indiqué précédemment
--max-depthest le niveau de sous-dossiers auquel vous voulez accéder.

Pavlos G.
la source
Que faut-il utiliser pour une profondeur maximale? -1?
dylanh724
61
apt-get install ncdu

entrez la description de l'image ici

Il est interactif aussi, donc si vous voulez vérifier un sous-dossier, il suffit de monter, de descendre et d’entrer.

ihashacks
la source
Exactement ce que je cherchais. Merci beaucoup!
Mathlight
Peut-être la recommandation logicielle la plus étonnante que j'ai jamais eue
SomethingSomething
cela devrait être la réponse approuvée
dvdmn
30

Pour obtenir la taille totale d'un répertoire et de tous les enfants

du -hs directory/*
Richard Holloway
la source
J'aimerais que le niveau suivant descende de là - la taille récursive de tous les enfants du premier niveau.
hawkeye
1
Je vais modifier ma réponse. Vous devez utiliser le répertoire du -h / *
Richard Holloway
17

Également vérifier tree. Il n'est pas installé par défaut mais ce sont les référentiels.

Exemple:

richard@legend:~$ tree Applications/ -s
Applications/
├── [           4096]  AlexFTPS-1.0.2
│   ├── [      31232]  AlexPilotti.FTPS.Client.dll
│   ├── [     274432]  C5.dll
│   ├── [       1457]  C5-License
│   ├── [      35147]  COPYING
│   ├── [       7639]  COPYING.LESSER
│   ├── [         70]  ftps
│   ├── [      28672]  ftps.exe
│   ├── [      98304]  Plossum CommandLine.dll
│   ├── [       1557]  Plossum-License
│   └── [       2560]  README
└── [           4096]  src
    └── [     180849]  AlexFTPS_bin_1.0.2.zip

Vous trouverez plus d'options dans la page de manuel.

Richard Holloway
la source
Les tailles doivent-elles être indiquées?
hawkeye
JG: Le -s montre les tailles.
Richard Holloway
1
Affiche la taille de l'enregistrement du répertoire plutôt que la taille du répertoire complet.
Steven Lu
-haffichez la taille de manière lisible par l'homme, par exempletree -s
Eric Wang
15

Puisque vous ne précisez pas que vous avez besoin d’une solution basée sur un terminal, je pense que baobab, également appelé Disk Usage Analyzer, ne figure pas dans la liste.

Il est installé dans Ubuntu par défaut et fait exactement ce que vous voulez dans une belle interface graphique avec la possibilité d’avancer dans la hiérarchie des répertoires.

En plus d'afficher une liste de répertoires avec leurs tailles, il affiche également un diagramme en anneaux ou en treemap de l'utilisation du système de fichiers, ce qui est extrêmement utile pour visualiser les répertoires qui occupent le plus d'espace.

baobab l'analyseur d'utilisation du disque

Sergey
la source
7

Une solution de terminal est la ducommande:

du --all --human-readable --apparent-size

(abréviation: du -ah --apparent-size)

duaffiche l'utilisation du disque pour chaque fichier et répertoire. Les options expliquées:

  • --all, -a- Afficher la taille des fichiers aussi bien que des répertoires
  • --human-readable, -h- affiche les tailles dans un format lisible par l’homme, par exemple 10K(10 kilo-octets), 10(10 octets)
  • --apparent-size - affiche la taille réelle du fichier, pas la taille utilisée par le disque.
Lekensteyn
la source
Je voulais juste les enfants du premier niveau
hawkeye
2
@hawkeye pour le 1er niveau, vous pouvez utiliser--max-depth=1
Nikoskip
4
@nikoskip bonne astuce! Il est également bon de savoir que la sténographie --max-depth=1peut être raccourcie -d1.
Lekensteyn
comment obtenir tous ces éléments dans un ordre décroissant de taille ..
kRazzy R
comment puis-je afficher le contenu et vide: / dev / sda5 ext4 430G 381G 27G 94% / mon ordinateur portable a moins d'un mois et il est tellement rempli qu'il n'a aucun sens
kRazzy R
2

Cela semble faire l'affaire lorsque des simlinks sont impliqués.

ls -LRlh
Mulki
la source
La réponse donnée ne m’a pas donné de détails sur simlinks (ls -lhR), les nombres indiqués à côté ne correspondaient pas à la bonne taille de chacune des valeurs. Ma réponse m'a donné une hiérarchie avec une arborescence définie et la réponse correcte ... OU parlez-vous d'une autre réponse votée?
Mulki
Vote négatif retiré, vote positif. Veuillez éditer et mettre le commentaire dans la réponse ... Merci pour l'explication. ;-)
Fabby
1

Pour obtenir une liste triée, mettez tout en Mo et triez:

du -m * | sort -n

Ou utilisez un outil tel que DiskReport pour générer un rapport d'arborescence complète du disque.

Erwan
la source
1

Une autre solution de terminal avec findet trier (par taille de fichier, colonne 1)

$ find . -maxdepth 1 ! -path . -printf "%s %p\n" | sort -n -k1                              
178 ./somefile.txt
219 ./somefile2.txt
4096 ./c
4096 ./cs2
4096 ./perl
4096 ./python
4096 ./random
4096 ./sh
Sergiy Kolodyazhnyy
la source
Cela ne montre pas la taille du répertoire.
muru