Re: Espace disque perdu [RÉSOLU]

Page principale

Répondre à ce message
Auteur: Edgar Bonet
Date:  
À: Liste Guilde
Sujet: Re: Espace disque perdu [RÉSOLU]
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