Salut !
Le dimanche 12 mars, Olivier Allard-Jacquin a écrit :
> du -ks ~/\.[^.]*
> [...]
>
> - NOTE: Tout ce qui va suivre [après ~/] est basé sur les expressions
> régulières...
Il s'agit des « glob patterns », c'est pas tout à fait la même chose que
les expressions régulières. C.f. man 7 glob.
> - "\." : Je sélectionne tout les fichiers qui commencent par un ".". Le
> "\" avant est utilisé pour "backslasher" le "." qui est un caractère
> spécial des expressions régulières.
Mais pas des globs, tu peux laisser tomber le `\'. Le `.' des
expressions régulières s'écrit `?' en glob.
> - "[^.]" : Je veux que le caractère qui soit après le "." soit n'importe
> quoi, excepté un ".". C'est afin d'éviter de faire un "du -ks ~/..".
Ça marche avec bash, mais ce n'est pas garanti de marcher avec d'autres
commandes qui font de la « glob expansion ». D'après le man :
POSIX a précisé que le motif générique « [^...] » a un effet
indéfini.
Il vaut donc mieux écrire « [!.] », plus portable.
> - "*" : Cela veut dire que l'expression "[^.]" est répété.
Non, ça veut dire « n'importe quoi », ou « .* » en langage regexp si tu
préfères. D'ailleurs ta commande m'affiche des répertories tels que
.fonts.cache-1 ou .mime.types, ce qui est une bonne chose dans le
contexte de la question de départ.
Bon, puisque j'y suis, j'y vais moi aussi de mon petit script :
---------------------------------------------------------
#!/bin/bash
shopt -s dotglob
du -sxc * |\
awk '
{
if ($1 < 1024)
petits += $1
else
printf("%7.1f\t%s\n", $1/1024., $2)
}
END {
printf("%7.1f\t%s\n", petits/1024., "(< 1 Mo)")
}
' |\
sort -n
---------------------------------------------------------
C'est un vieux script, un peu retouché, du temps où il m'arrivait
d'écrire du awk. Il affiche les tailles en Mo (à 0,1 Mo près). Tous les
petits fichiers et répertoires (< 1 Mo) sont regroupés en une seule
ligne. C'est trié par taille et tu as une ligne « total » à la fin.
--
Edgar Bonet Maison : 04 76 21 29 16 Bureau : 04 76 88 10 96
3 rue Jean Prévost Mobile : 06 77 19 79 39 Fax : 04 76 88 11 91
38000 Grenoble guilde@??? www.edgar-bonet.org