Les deux commandes (find -name *.pdf et find -name *.pdf) donne le même résultat lorsqu'il n'y a aucun fichiers.pdf dans le répertoire courant.
Maintenant avec un seul
fichier.pdf dans le répertoire courant avec l'option set -x voila ce que j'obtiens :
find -name *.pdf
+ find -name langage_c.pdf
et
find -name \*.pdf
+ find -name '*.pdf'
Maintenant avec plus d'un fichier.pdf dans le répertoire courant avec l'option set -x voila ce que j'obtiens :
find -name *.pdf
+ find -name Introduction_ANSI_C-B.Cassagne_stop_page37_procedure.pdf langage_c.pdf
find: paths must precede expression: `langage_c.pdf'
find: possible unquoted pattern after predicate `-name'?
et
find -name \*.pdf
+ find -name '*.pdf'
./c++/c++.pdf
./c/langage_c.pdf
./c/C20H_integrale_creative-commons-by-sa.pdf
./c/Introduction_ANSI_C-B.Cassagne_stop_page37_procedure.pdf
./langage_c.pdf
./java/java.pdf
./java/JavaDoudoux.pdf
./java/conception-d-applications-en-java-jee-principes-patterns-et-architectures.pdf
./java/Oracle Certified Professional Java SE 8 Programmer Exam 1Z0-809.pdf
./java/Exercices en Java - Claude Delannoy - Eyrolles (2ème Ed.) 2006.pdf
./script_et_ligne_de_commande/bash/expert_bash.pdf
./script_et_ligne_de_commande/bash/introduction_programmation_bash.pdf
./script_et_ligne_de_commande/bash/programmation_systeme.pdf
./script_et_ligne_de_commande/bash/shell_linux_et_unix_par_la_pratique_blaess.pdf
./script_et_ligne_de_commande/bash/guide_bash_debutant.pdf
./script_et_ligne_de_commande/script.pdf
./sql/My_SQL.pdf
./Introduction_ANSI_C-B.Cassagne_stop_page37_procedure.pdf
Watael a écritfind -name *.pdf va chercher les fichiers qui correspondent au fichier .pdf qui existe dans le répertoire courant, et pas tous les fichiers ayant une extension .pdf.
S'il y en a plusieurs, find sort avec une erreur, parce que -name ne peut prendre qu'un seul motif !
S'il n'y en a pas, find prend le motif pour lui.
Ok j'ai compris que lorsqu'il y a effectivement plusieurs
fichiers.pdf dans le repertoire courant la commande find -name *.pdf => erreur car -name ne prends qu'un seul motif
Ok j'ai compris que lorsqu'il n'y a pas de
fichier.pdf => même résultat que la commande find -name *.pdf
KO je ne comprends pas par qui est interpréter en premier le joker *, par la commande find ou bien par le bash ?
Moi perso j'aurai tendance à dire par le bash et c'est justement ça le problème on veut que le joker soit interpréter par le find et non par la bash.
J'ai bien tout compris ?
Ce que je veux dire pour être plus précis c'est que si on a exactement deux fichiers.pdf par exemple f1.pdf et f2.pdf dans le repertoire courant et plusieurs fichiers.pdf en dessous de l'arborescence
alors find -name *.pdf, le joker * est interprété par le bash et remplace cette expression par find -name f1.pdf f2.pdf et ça fou la merde par ce que -name ne prends qu'un seul motif
Mais
si on écris find -name *.pdf le joker * n'est pas interprété par le bash mais par find et find recherche dans le repertoire courant tous les fichiers.pdf
C'est bien ça ?