Le 27/02/2011 13:16, Luxpopuli Open source a écrit :
Bonjour et merci pour votre contribution.

La seule version qui marche vraiment est:

time find /usr/local/www/ -type f -size +10M -print0 | xargs -0 ls -Ssh1 |wc -l

Les résultats sont classés et c'est la plus rapide (pas de beaucoup mais bon...)

Celle-ci

time find /usr/local/www/ -size +10M -exec ls -Ssh1 {} \;|wc -l

fonctionne mais ne classe pas les résultats. On voit qu'il n'est effectivement pas besoin de protéger {}

Et celle-ci:

find /foo -size +10M -exec ls -bla {} +

ne marche pas du tout ;-)

il faut au minimum ajouter «\;» et supprimer le +

Cordialement,



Le 27 février 2011 03:33, Jeremie COURREGES-ANGLAS <kt...@wxcvbn.org <mailto:kt...@wxcvbn.org>> a écrit :

    > Tu peux essayer cette commande :
    >
    > find / -size +10M -exec ls -Ssh1 '{}' \;

    Cette version ne fournit pas un affichage classé (trié) puisque chaque
    invocation de ls se fera sur un seul fichier.
    Pour avoir une seule invocation de ls (dans le meilleur des cas),
    il faut
    utiliser :

    find /foo -size +10M -exec ls -bla {} +

    Pas besoin de protéger {}

    My two cents.

    --
    "Free software, free society."
    Jérémie Courrèges-Anglas
    GPG key : 06A11494


find /usr/local/www/ -type f -size +10M -printf '%s %p\n'  | sort -n

Cela n'est pas plus simple et surement beaucoup plus rapide ?



Répondre à