Comment répertorier les tailles de fichiers récursifs de fichiers et de répertoires dans un répertoire?

34

Comment puis-je répertorier tous les fichiers d'un répertoire et leur taille récursive?

--- edit

Je souhaite que les tailles soient "ajoutées" aux répertoires parents du répertoire répertorié. Je ne veux pas voir les répertoires enfants ou leurs contenus ou tailles.

    
posée hawkeye 18.08.2011 - 13:46
la source

9 réponses

43

Je pense que la manière la plus simple est de taper ls -l ou ls -lh , ce qui fournira la taille du fichier dans un format lisible par l'homme (Ko, Mo, etc.).

Si "récursivement" signifie lister tous les dossiers suivants, par exemple:

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

Ensuite, vous devez également ajouter le paramètre R , comme ls -lR ou ls -lhR

Pour plus d'informations sur ls , saisissez man ls

Mise à jour:

La commande suivante proposée par Lekensteyn fera probablement le travail:

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

-h est pour une lecture lisible par l'homme
--apparent-size est une autre manière d'afficher les tailles, comme indiqué précédemment
--max-depth est le niveau de sous-dossiers vers lequel vous voulez descendre.

    
réponse donnée Pavlos G. 18.08.2011 - 14:00
la source
45
apt-get install ncdu

Il est interactif aussi, donc si vous voulez vérifier un sous-dossier juste UP, DOWN et Enter to

    
réponse donnée ihashacks 19.08.2011 - 06:59
la source
23

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

du -hs directory/*
    
réponse donnée Richard Holloway 18.08.2011 - 14:16
la source
15

Découvrez également tree . Ce n'est pas installé par défaut mais ce sont les référentiels.

Exemple:

[email protected]:~$ 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.

    
réponse donnée Richard Holloway 18.08.2011 - 14:13
la source
11

Comme vous ne mentionnez pas spécifiquement que vous avez besoin d’une solution basée sur un terminal, je pense que baobab a.k.a.

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

En plus d’afficher une liste de répertoires avec leurs tailles, il montre également une carte de sonneries ou de cartes de visite de l’utilisation du système de fichiers, ce qui est extrêmement utile pour visualiser les répertoires qui occupent le plus de place.

    
réponse donnée Sergey 19.08.2011 - 02:31
la source
4

Une solution de terminal est la commande du :

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

(raccourci: du -ah --apparent-size )

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

  • --all , -a - affiche également les tailles des fichiers, pas seulement les répertoires
  • --human-readable , -h - affiche les tailles dans un format lisible, par ex. 10K (10 kilo-octets), 10 (10 octets)
  • --apparent-size - affiche la taille réelle du fichier, et non la taille utilisée par le disque.
réponse donnée Lekensteyn 18.08.2011 - 14:02
la source
2

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

ls -LRlh
    
réponse donnée Mulki 20.04.2016 - 12:58
la source
0

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 de disque complète.

    
réponse donnée Erwan 19.08.2015 - 23:22
la source
0

Une autre solution de terminal avec find et tri (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
    
réponse donnée Sergiy Kolodyazhnyy 20.08.2015 - 00:26
la source

Lire d'autres questions sur les étiquettes