[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: find et fichiers avec espaces



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 :-)

> 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. ;-)

> 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 :

$ 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 ?

$ 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

Attachment: pgpU4lJXXR54D.pgp
Description: PGP signature


Reply to: