La dir
commande de liste de répertoires Windows comporte une ligne à la fin indiquant la quantité totale d’espace occupé par les fichiers répertoriés. Par exemple, dir *.exe
affiche tous les .exe
fichiers du répertoire en cours, leurs tailles et la somme totale de leurs tailles. J'adorerais avoir une fonctionnalité similaire avec mon dir
alias dans bash, mais je ne sais pas exactement comment s'y prendre.
Actuellement, j'ai alias dir='ls -FaGl'
dans mon .bash_profile
, montrant
drwxr-x---+ 24 mattdmo 4096 Mar 14 16:35 ./
drwxr-x--x. 256 root 12288 Apr 8 21:29 ../
-rw------- 1 mattdmo 13795 Apr 4 17:52 .bash_history
-rw-r--r-- 1 mattdmo 18 May 10 2012 .bash_logout
-rw-r--r-- 1 mattdmo 395 Dec 9 17:33 .bash_profile
-rw-r--r-- 1 mattdmo 176 May 10 2012 .bash_profile~
-rw-r--r-- 1 mattdmo 411 Dec 9 17:33 .bashrc
-rw-r--r-- 1 mattdmo 124 May 10 2012 .bashrc~
drwx------ 2 mattdmo 4096 Mar 24 20:03 bin/
drwxrwxr-x 2 mattdmo 4096 Mar 11 16:29 download/
par exemple. En prenant les réponses de cette question :
dir | awk '{ total += $4 }; END { print total }'
ce qui me donne le total, mais n'imprime pas le répertoire lui-même. Existe-t-il un moyen de modifier cela en un script one-liner ou shell afin que je puisse transmettre tous les ls
arguments que je souhaite dir
et obtenir une liste complète plus le total? Par exemple, j'aimerais exécuter dir -R *.jpg *.tif
la liste et la taille totale de ces types de fichiers dans tous les sous-répertoires. Idéalement, ce serait bien si je pouvais obtenir la taille de chaque sous-répertoire, mais ce n'est pas essentiel.
ls -lh
imprime, mais ce n'est pas toujours lié à ce que les awk
scripts ci-dessous calculent, ni à ce que j'ajoute à la main. Parfois, il est proche du nombre de Ko de fichiers dans le répertoire, mais cela ne semble pas tenir compte de la taille allouée des sous-répertoires. Je vous serais reconnaissant de m'indiquer une explication exacte de ce nombre ...
ls -lh
ne montre pas le total de la taille d'un
ls -lh
pas? Il imprime la somme totale en haut. Vous pouvez également exécuterdu -sh *.exe
pour obtenir des informations d'utilisation de l'espace disque sous une forme lisible par l'homme.