Pages : 1
#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
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 parce que je comprend pas bien la différence de réaction la
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 !?
x'D hopper c'est bien de faire ce que l'on dit aux autres ^^ x'D cherche pas ...
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
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
Alors que dans ton home, il recherche "*.jpg".
Dernière modification par ®om (Le 30/06/2008, à 11:33)
Hors ligne
Pages : 1