Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/06/2008, à 20:37

Hoper

Bug sur la commande find !?

Bonjour,

Je viens de tomber sur un truc très bizarre...
Voila la situation, j'ai un fichier tmp.jpg dans le répertoire "tmp", et dans ce répértoire un autre répértoire "truc" qui contient truc.jpg...
Pour "trouver" ces deux fichiers, il semble que l'utilisation du . comme répértoire de départ d'un find ne fontionne pas...
Voyez plutôt :

hoper@scorpion:~$ pwd
/home/hoper
hoper@scorpion:~$ find tmp -name *jpg
tmp/truc/truc.jpg
tmp/tmp.jpg
hoper@scorpion:~$ cd tmp
hoper@scorpion:~/tmp$ find . -name *jpg
./tmp.jpg

Comme vous pouvez le voir, il ne descend plus l'arborescence et ne renvoi que le premier fichier !?
Si quelqu'un à une explication... Je suis quasiement certain que le "." avait toujours bien fonctionné dans un find..


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#2 Le 29/06/2008, à 20:42

cep

Re : Bug sur la commande find !?

find . -name "*jpg"

te fait pareil ?

Hors ligne

#3 Le 29/06/2008, à 20:45

sniphack

Re : Bug sur la commande find !?

x'D hopper c'est bien de faire ce que l'on dit aux autres ^^ x'D cherche pas ...


http://forum.ubuntu-fr.org/search.php?action=show_user&user_id=76095

Hors ligne

#4 Le 29/06/2008, à 20:47

Hoper

Re : Bug sur la commande find !?

hoper@scorpion:~/tmp$ find . -name "*jpg"
./truc/truc.jpg
./tmp.jpg

Bravo cep !!!
Heu... maintenant tu m'explique stp smile parce que je comprend pas bien la différence de réaction la hmm

x'D hopper c'est bien de faire ce que l'on dit aux autres ^^ x'D cherche pas ...

J'aurai peut etre pu inidiqué effectivement ce post en rapport direct :
http://forum.ubuntu-fr.org/viewtopic.php?pid=1892506#p1892506
Mais bon, je voyai pas bien l'interet dans ce thread la...
Maintenant il faut juste que je mette l'autre à jour.

Dernière modification par Hoper (Le 29/06/2008, à 20:50)


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#5 Le 29/06/2008, à 22:55

cep

Re : Bug sur la commande find !?

Hoper a écrit :

x'D hopper c'est bien de faire ce que l'on dit aux autres ^^ x'D cherche pas ...

smile

Une partie de la réponse dans info find :
Finding Files
Name
Shell Pattern Matching

Hors ligne

#6 Le 30/06/2008, à 10:14

Hoper

Re : Bug sur la commande find !?

Ok, vu :

You must quote patterns that contain metacharacters to prevent the
shell from expanding them itself.  Double and single quotes both work;
so does escaping with a backslash.

J'ai encore du mal a comprendre pourquoi ca fonctionne dans un cas et pas dans l'autre, mais c'est effectivement un début de réponse smile

Dernière modification par Hoper (Le 30/06/2008, à 10:16)


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#7 Le 30/06/2008, à 10:26

®om

Re : Bug sur la commande find !?

La raison, c'est que *.jpg est interprété par le shell, et est «calculé» avant d'appeler la commande (ici find).

Donc en fait ton find est réellement appelé comme ceci :

find . -name tmp.jpg

Fais le test :

echo *.jpg

et

echo "*.jpg"

Hors ligne

#8 Le 30/06/2008, à 10:52

Hoper

Re : Bug sur la commande find !?

Ca j'avais compris, mais pourquoi quand je fais le find tmp *jpg
ca marche ?


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#9 Le 30/06/2008, à 10:54

®om

Re : Bug sur la commande find !?

Dans /home/hoper, tu as peut-être également un truc.jpg et un tmp.jpg ???

En gros, que te donnent :

echo ~/*jpg

et

echo ~/tmp/*jpg

Dernière modification par ®om (Le 30/06/2008, à 11:03)

Hors ligne

#10 Le 30/06/2008, à 11:17

Hoper

Re : Bug sur la commande find !?

Ces commandes echo ne fonctionne pas, le * n'est pas interprété. Mais j'ai vérifie, je n'ai aucun fichier jpg dans mon home. (bonne idée cela dit...)


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#11 Le 30/06/2008, à 11:26

cep

Re : Bug sur la commande find !?

Et encore :
find tmp -name *jpg
ne devrait pas fonctionner avec d'autres extensions que jpg.

As-tu des txt dans le tmp/ et une recherche avec
find tmp -name *txt
fonctionne ?

Hors ligne

#12 Le 30/06/2008, à 11:30

®om

Re : Bug sur la commande find !?

En fait le * est interprété s'il y a des fichiers jpg, sinon il ne l'est pas...

rom@rom-laptop:~/tmp$ echo *.jpg
*.jpg
rom@rom-laptop:~/tmp$ touch test.jpg
rom@rom-laptop:~/tmp$ echo *.jpg
test.jpg

Donc si tu n'as pas de fichier jpg dans ton répertoire courant, *.jpg équivaut à "*.jpg"...

Et dans ~/tmp (après ton cd tmp), *.jpg se transforme en tmp.jpg (puisque c'est le contenu du répertoire).
Donc ton find ne recherche que tmp.jpg smile
Alors que dans ton home, il recherche "*.jpg".

Dernière modification par ®om (Le 30/06/2008, à 11:33)

Hors ligne