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.


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.


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.


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/*

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.


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


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.

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

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.


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

Cela ne montre pas la taille du répertoire.
muru
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.