Afficher taille contenu des dossiers avec ls

Salut à tous.
Je cherche à afficher la taille des dossiers (de leurs contenus) en même temps que celles des fichiers, et non avoir la taille du “fichier dossier” (genre 4092)

Pour le moment, j’ai mis l’alias suivant dans mon zshrc: alias ll='ls -hlFiX --group-directories-first --color=auto'Je ne vois pas comment combiner un du -h ou je ne sais quoi.

$ ls -al

J’utilise ces options déjà : -l pour afficher une liste détaillée verticale, et -a pour afficher les fichiers cachés.
Mais je ne trouve pas de moyen pour afficher la taille du contenu des dossiers, couplé à un ls -l.

Pour le sport j’ai essayé de faire une usine à gaz qui reprendrait chaque ligne du ls -lAF, détecterait si c’est un répertoire (grâce au / à la fin ajouté par -F) et effectuerait un du -hs sur ce répertoire puis rajouterait l’info à la fin de la ligne.

Le problème, c’est que c’est très compliqué de savoir quel répertoire on liste.
Il faut prendre en compte les cas suivants :

  • ls
  • ls option(s)
  • ls répertoire
  • ls répertoire répertoire …
  • ls option(s) répertoire(s)

Et bien entendu, dans le cas de répertoires multiples il faut détecter dans le flux le moment où le répertoire change. Sans compter que si l’on utilise de la couleur, ça rend les choses encore plus compliquées pour retrouver le nom du dossier dans la ligne.
Bref, un casse-tête pas possible, je ne suis pas vraiment sûr que ça vaille le coup surtout quand on voit le temps que met un du -hs à s’exécuter sur un répertoire un peu gros.

Juste pour rire (la première ligne est pour vider complètement les divers caches) :

[code]# sync ; echo 1 > /proc/sys/vm/drop_caches ; echo 2 > /proc/sys/vm/drop_caches ; echo 3 > /proc/sys/vm/drop_caches
$ time du -hs / 2>/dev/null
84G /

real 1m2.508s
user 0m0.572s
sys 0m4.520s[/code]

Salut,

Extrait de man du

[quote]-a, --all
afficher le volume de tous les fichiers, et pas seulement celui des répertoires

-h, --human-readable
afficher les tailles dans un format lisible par un humain (par exemple 1K 234M 2G)

-s, --summarize
afficher seulement un total pour chaque paramètre

[/quote]
Taille d’un dossier seulement,l’option -h pour avoir une version lisible des tailles, et non la taille en octets.

root@machine1:/etc/apt# du -hs 152K . root@machine1:/etc/apt#

Pour un dossier précis.

root@machine1:/etc/apt# du -hs /var 845M /var root@machine1:/etc/apt#

Taille d’un dossier et de ses sous dossiers

On enlève l’option de “summerization” (-s)

Ici le | more pour afficher sur plusieurs pages.

root@machine1:/etc/apt# du -h | more 12K ./sources.list.d 8,0K ./listbugs 4,0K ./trusted.gpg.d 48K ./apt.conf.d 4,0K ./preferences.d 152K . root@machine1:/etc/apt#

Taille d’un dossier et de tous les fichiers qu’il contient.

Ajout de l’option -all

root@machine1:/etc/apt# du -ha | more 4,0K ./sources.list 4,0K ./apt.conf 4,0K ./sources.list.cron-apt 24K ./trusted.gpg~ 8,0K ./sources.list.d/sources.list 12K ./sources.list.d 4,0K ./listbugs/ignore_bugs 8,0K ./listbugs 4,0K ./trusted.gpg.d 4,0K ./apt.conf.d/99update-notifier 4,0K ./apt.conf.d/10periodic 4,0K ./apt.conf.d/98prelink 4,0K ./apt.conf.d/20archive 4,0K ./apt.conf.d/00trustcdrom 4,0K ./apt.conf.d/20listchanges 4,0K ./apt.conf.d/70debconf 4,0K ./apt.conf.d/10apt-listbugs 4,0K ./apt.conf.d/01autoremove 4,0K ./apt.conf.d/15update-stamp 4,0K ./apt.conf.d/00CDMountPoint 48K ./apt.conf.d 0 ./secring.gpg 0 ./sources.list~ 4,0K ./preferences 4,0K ./trustdb.gpg 4,0K ./listchanges.conf 4,0K ./preferences.d 24K ./trusted.gpg 152K . root@machine1:/etc/apt#

Bonjour

Effectivement, La commande ‘du’ permet de voir la taille répertoire et fichiers:
l’option est la suivante (indiquer aussi le chemin)
exemple:

du -sh /home/utilisateur/* (répertoires + fichiers)

                     *.*       (seulement les fichiers)

Rien ne remplit mieux la tâche que “du” pour plonger en profondeur dans les sous dossiers.

J’y vais donc de mon alternative imparfaite qui ne supplantera pas “du” : installer tree.
Poids relatif et représentation de la hiérarchie des dossiers :

$ tree -sha .

(options -sha similaires à $ ls -sha)
Problème : profondeur

j’avais déjà aussi essayé de brisoler mon ls -hlFiX --group-directories-first --color=autoavec du -h, mais ça ne marche pas très bien.
du -h est très bien pour lister et afficher le contenu des dossiers, mais il part alors sur une analyse en profondeur (ce qu’on lui demande).

Mais le ls -lh, n’affiche que la taille des fichiers.
Je pense que genre un script qui lancerait un du -h, grep le résultat et l’injecte dans le resultat d’un ls -lh serait fastidieux.