Bonjour,

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

> On Sunday 27 February 2011 à 01:16:35PM, Luxpopuli Open source wrote:
> > 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
>
> Non, ce n'est pas la seule :-)
>

C'est vrai !

>
> > Les résultats sont classés et c'est la plus rapide (pas de beaucoup mais
> > bon...)
>
> Non plus, ce n'est pas la plus rapide. ;-)
>

Je ne sais pas si c'est la plus rapide ou non, mais de toute façon mes
mesures de temps étaient bidon puisque les résultats étaient en cache.
D'ailleurs, comment je fais pour mesure le temps d'exécution d'une commande
en étant certain de ne pas bénéficier du cache ? (perso, la seule solution
que je connaisse c'est de se déloguer, ce qui est un lourd)

>
> > 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 +
>
> Non, faut juste ne pas la copier/coller betement dans un terminal.
> Une version prete à etre copiée/collée :
>

Alors là, quand même, faut pas pousser mémé dans les orties ! ;-) J'avais
pris la peine de remplacer bla par Ssh1. Cela dit, je ne sais pas ce que
j'ai fait, mais je viens de retester et aujourd'hui cette commande marche
parfaitement.
Donc, autant pour moi.


> $ time find /usr/local/www -size +10M -exec ls -Ssh1 {} +
>
> Et chez moi ça donne dans tous les cas de meilleurs résultats que find
> -print0
> | xargs -0.
>
> Sinon, pourquoi utiliser ls -Ssh1 si le but est de compter le nombre de ces
> fichiers ?
>

Non, j'ai ajouté wc -l uniquement pour m'assurer que pour chaque version de
commande testée tous les fichiers étaient bien trouvés. Mais c'est bien la
liste des fichiers qui m'intéressent.

>
> $ time find /usr/local/www -size +10M -exec printf %.sx {} + | wc -c
>
> Cette version diffère dans le sens où un 'x' est affiché pour chaque
> fichier,
> et on compte le nombre de x final. Fonctionne sans ls -1 en cas de fichiers
> comportant des caractères exotiques dans leur nom, et ptet plus efficace vu
> qu'on écrit moins de choses dans le pipe.
>
> Sinon, man find, info find, http://mywiki.wooledge.org/UsingFind
>
> Ciao
>
> --
> "Free software, free society."
> Jérémie Courrèges-Anglas
> GPG key : 06A11494
>
>

Répondre à