Forum Programmation.shell Xargs locate ls

Posté par  .
Étiquettes : aucune
0
21
oct.
2005
Bonjour,

je souhaitais faire une recherche de tout un certain type de fichier et voir leur taille. Pour cela j'ai benoitement tenté la commande
locate ".ext" | xargs ls -lh
Mais ca ne marche pas, j'ai un message d'erreur "unmatching single quotes". Alors je m'empresse de questionner mon ami Google
http://groups.google.com/groups?ie=utf-8&oe=utf-8&q=(...)
Et il me trouve plein de pages mais aucune ne contient le mot locate !!
Ce n'est que des questions sur find.
Alors est-ce que quelqu'un pourrait me venir en aide ?
ET accessoirement qui a une idée sur ce comportement étrange de Google, Bug ??
  • # amuse toi bien

    Posté par  (site web personnel) . Évalué à 2.

    find / -iname "*.ext" -exec ls -lh '{}' \;
    • [^] # Re: amuse toi bien

      Posté par  (site web personnel) . Évalué à 3.

      ou encore

      locate -r '\.sh$' | xargs ls -lh

      (chezmoicamarche.com locate etant un alias sur slocate)

      Au passage si je met un "| wc -l" apres ces deux commandes, on note que le nombre de ligne n'est pas le meme ce qui est normal vu que j'ai des exclude dans mon /etc/updatedb.conf
      • [^] # Re: amuse toi bien

        Posté par  . Évalué à 3.

        Ca n'a pas marché non plus,
        Mais comme tu l'as justement souligné ca à l'air de venir de fichiers nommés comme des gorets.
        Avec la commande suivante
        locate .ext|while read i ; do ls -lh $i ; done
        ca marche.
        Sinon quelqu'un à une idée pour le bug de Google ?
  • # RE : erreur du shell

    Posté par  . Évalué à 3.

    Pour moi ce n'est pas une erreur de locate mais du shell (bash).
    Mon avis est que parmi les fichiers trouvés par locate, tu en as un dont le nom contient une simple quote. xargs le passe à ls et ça le perturbe.

    Mais je n'ai aucune idée de comment résoudre le problème. Pour chercher des fichiers, j'utilise plutôt

    > find . -name "*.ext" -exec ls -lh '{}' ';'

    C'est pas tout à fait équivalent. locate utilise une base de données, je crois...
    • [^] # Re: RE : erreur du shell

      Posté par  . Évalué à 3.


      C'est pas tout à fait équivalent. locate utilise une base de données, je crois...


      Oui locate utilise une base de donnés et donc est infiniment plus rapide que find. C'est comme si tu comparais Google Desktop et le truc de Windows pour chercher des fichiers.
      • [^] # Re: RE : erreur du shell

        Posté par  (site web personnel) . Évalué à 2.

        Cependant il ne faut pas oublier que find est plus exhaustif que locate lequel peut etre configuré pour eviter de memoriser certains repoertoires et aussi n'est pas toujours a jour.
        • [^] # Re: RE : erreur du shell

          Posté par  . Évalué à 2.

          locate est un de mes meilleurs amis, j'épate mes collègues (Windowsiens) avec, j'arrive à trouver des fichiers perdus et/ou vieux de 3 ans. Si a chaque fois je dois m'amuser à faire des find sur 80Go de fichiers je ne m'en sortirait pas.
          • [^] # Re: RE : erreur du shell

            Posté par  (site web personnel) . Évalué à 2.

            Cependant il faut etre concient de ses limites.
            Une petit cron bien placé pour le updatedb[1] et un updatedb.conf[2] aux petits ognoins et apres effectivement, c'est que du bonheure.

            [1]toutes les nuit pour ma part
            [2]etant sous gentoo je prefere exclures les repertoires de compilations et ccache...
  • # tient ca m'apprendra...

    Posté par  (site web personnel) . Évalué à 3.

    a lire avant de repondre.

    Donc, le pb du "unmatching single quotes" a été résolut dans ce thread la : http://linuxfr.org/forums/10/12030.html
    ainsi que les histoires d'espaces.

    Bonne lescture.
  • # Google...

    Posté par  (site web personnel) . Évalué à 3.

    Il semble que les version avec locate arrive bien plus tard dans les pages. Cette utilitaire doit etre moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser et donc moins repertorier et donc moins consulté et donc moins connu et donc moins utiliser...

    Bref ca craint (mais bon il apparit genre en page 10)

    Un truc de se genre semble plus pertinant (et encore) "locate (xargs OR ls)" => http://groups.google.com/groups?as_q=locate&num=10&s(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.