[find] Bug ??
Fermé
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
-
16 juil. 2007 à 11:44
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 - 19 juil. 2007 à 12:05
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 - 19 juil. 2007 à 12:05
A voir également:
- [find] Bug ??
- Bug yahoo mail - Accueil - Mail
- Bug chatgpt - Accueil - Intelligence artificielle
- Bug localisation snap ✓ - Forum Snapchat
- Bug yahoo mail 27 fevrier 2024 ✓ - Forum Yahoo mail
- Find ctime ✓ - Forum Shell
8 réponses
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
16 juil. 2007 à 11:49
16 juil. 2007 à 11:49
J'ajoute que si je mets des guillemets, çà marche:
find /home/outils/log -name "*.txt"
Mais dans un script ca ne marche plus :
for i in `find /home/outils/log -name "*.txt"`;do
echo $i
done
-> find: paths must precede expression
Usage: find [path...] [expression]
:-((
find /home/outils/log -name "*.txt"
Mais dans un script ca ne marche plus :
for i in `find /home/outils/log -name "*.txt"`;do
echo $i
done
-> find: paths must precede expression
Usage: find [path...] [expression]
:-((
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
16 juil. 2007 à 13:19
16 juil. 2007 à 13:19
Est-ce que le répertoire ou est exécutée la commande contient des fichiers .txt ?
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
16 juil. 2007 à 13:47
16 juil. 2007 à 13:47
Non, il n'en contient pas, mais il ne contient pas non plus de fichiers csv !
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
16 juil. 2007 à 14:26
16 juil. 2007 à 14:26
Bonjour,
Il ne contient pas non plus de fichiers cachés ?
L'idéal, serait que tu nous donne le resultat complete des commandes suivantes (par copier/coller):
Il ne contient pas non plus de fichiers cachés ?
L'idéal, serait que tu nous donne le resultat complete des commandes suivantes (par copier/coller):
$ ls -alR /home/outils/log $ find /home/outils/log -name *.txt $ find /home/outils/log -name *.csv@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 622
16 juil. 2007 à 14:36
16 juil. 2007 à 14:36
Pour ne pas interprétée par le shell l'étoile du find DOIT être protégée:
find -name \*.txt ...
find -name "*.txt" ...
find - name '*.txt' ...
un alias peut-être ?
\find /home/outils/log -name \*.txt
quel find ?
whereis find
find -name \*.txt ...
find -name "*.txt" ...
find - name '*.txt' ...
un alias peut-être ?
\find /home/outils/log -name \*.txt
quel find ?
whereis find
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
16 juil. 2007 à 15:25
16 juil. 2007 à 15:25
ls -alR /home/outils/log
/home/outils/log:
total 268
drwxrwx--- 2 outils www-data 16384 2007-07-16 10:11 .
drwxr-xr-x 5 outils outils 4096 2007-07-16 12:05 ..
-rw-rw-rw- 1 outils outils 250 2007-07-09 09:20 Log_REJEU_DISE_09072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-10 09:20 Log_REJEU_DISE_10072007.log
-rw-rw-rw- 1 outils outils 186104 2007-07-11 10:37 Log_REJEU_DISE_11072007.log
-rw-rw-rw- 1 outils outils 547 2007-07-12 10:48 Log_REJEU_DISE_12072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-13 09:20 Log_REJEU_DISE_13072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-14 09:20 Log_REJEU_DISE_14072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-15 09:20 Log_REJEU_DISE_15072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-16 09:20 Log_REJEU_DISE_16072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-09 09:20 Log_REJEU_DISE_BZH_09072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-10 09:20 Log_REJEU_DISE_BZH_10072007.log
-rw-rw-rw- 1 outils outils 1914 2007-07-11 10:37 Log_REJEU_DISE_BZH_11072007.log
-rw-rw-rw- 1 outils outils 583 2007-07-12 10:48 Log_REJEU_DISE_BZH_12072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-13 09:20 Log_REJEU_DISE_BZH_13072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-14 09:20 Log_REJEU_DISE_BZH_14072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-15 09:20 Log_REJEU_DISE_BZH_15072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-16 09:20 Log_REJEU_DISE_BZH_16072007.log
(Pourquoi 268 ???)
find /home/outils/log -name *.txt
find: paths must precede expression
Usage: find [path...] [expression]
find /home/outils/log -name *.csv
-> RIEN
Si je fais un touch /home/outils/log/test.txt puis
find /home/outils/log -name *.txt
find: paths must precede expression
Usage: find [path...] [expression]
Par contre:
find /home/outils/log -name \*.txt
/home/outils/log/test.txt
Je ne vois pas pourquoi il faut échapper * pour txt ??
/home/outils/log:
total 268
drwxrwx--- 2 outils www-data 16384 2007-07-16 10:11 .
drwxr-xr-x 5 outils outils 4096 2007-07-16 12:05 ..
-rw-rw-rw- 1 outils outils 250 2007-07-09 09:20 Log_REJEU_DISE_09072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-10 09:20 Log_REJEU_DISE_10072007.log
-rw-rw-rw- 1 outils outils 186104 2007-07-11 10:37 Log_REJEU_DISE_11072007.log
-rw-rw-rw- 1 outils outils 547 2007-07-12 10:48 Log_REJEU_DISE_12072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-13 09:20 Log_REJEU_DISE_13072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-14 09:20 Log_REJEU_DISE_14072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-15 09:20 Log_REJEU_DISE_15072007.log
-rw-rw-rw- 1 outils outils 250 2007-07-16 09:20 Log_REJEU_DISE_16072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-09 09:20 Log_REJEU_DISE_BZH_09072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-10 09:20 Log_REJEU_DISE_BZH_10072007.log
-rw-rw-rw- 1 outils outils 1914 2007-07-11 10:37 Log_REJEU_DISE_BZH_11072007.log
-rw-rw-rw- 1 outils outils 583 2007-07-12 10:48 Log_REJEU_DISE_BZH_12072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-13 09:20 Log_REJEU_DISE_BZH_13072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-14 09:20 Log_REJEU_DISE_BZH_14072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-15 09:20 Log_REJEU_DISE_BZH_15072007.log
-rw-rw-rw- 1 outils outils 268 2007-07-16 09:20 Log_REJEU_DISE_BZH_16072007.log
(Pourquoi 268 ???)
find /home/outils/log -name *.txt
find: paths must precede expression
Usage: find [path...] [expression]
find /home/outils/log -name *.csv
-> RIEN
Si je fais un touch /home/outils/log/test.txt puis
find /home/outils/log -name *.txt
find: paths must precede expression
Usage: find [path...] [expression]
Par contre:
find /home/outils/log -name \*.txt
/home/outils/log/test.txt
Je ne vois pas pourquoi il faut échapper * pour txt ??
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
16 juil. 2007 à 15:34
16 juil. 2007 à 15:34
Bonche y'a un mystere là :)
En fait, quand tu fais find [...] -name *.txt , si le repertoire contient des fichiers a.txt b.txt, l'expansion fait que ton find est en fait find [...] -name a.txt b.txt , c'est exactement le même fonctionnement qu'un ls *txt.
Par contre, là, comme il n'y a pas de fichier *.txt ou .*.txt il y a un soucis :(
Dans le doute, quer te donne la commande shopt, et quel interpreteur utilises tu (bash?) ?
@+
En fait, quand tu fais find [...] -name *.txt , si le repertoire contient des fichiers a.txt b.txt, l'expansion fait que ton find est en fait find [...] -name a.txt b.txt , c'est exactement le même fonctionnement qu'un ls *txt.
Par contre, là, comme il n'y a pas de fichier *.txt ou .*.txt il y a un soucis :(
Dans le doute, quer te donne la commande shopt, et quel interpreteur utilises tu (bash?) ?
@+
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
16 juil. 2007 à 15:43
16 juil. 2007 à 15:43
PS: le 268 c'est le nombre de block utilisés (en admettant que la taille d'un block soit de 1Ko)
++
++
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
16 juil. 2007 à 17:22
16 juil. 2007 à 17:22
shopt
cdable_vars off
cdspell off
checkhash off
checkwinsize on
cmdhist on
dotglob off
execfail off
expand_aliases on
extglob off
histreedit off
histappend off
histverify off
hostcomplete on
huponexit off
interactive_comments on
lithist off
login_shell on
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nullglob off
progcomp on
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off
C'est bizarre, j'ai le meme souci sur une redhat (sur un autre motif de fichier et sur un autre répertoire)
C'est encore plus bizarre que l'échappement devant * fonctionne: il ne devrait pas trouver avec
find /home/ -name "\*.csv" ?
cdable_vars off
cdspell off
checkhash off
checkwinsize on
cmdhist on
dotglob off
execfail off
expand_aliases on
extglob off
histreedit off
histappend off
histverify off
hostcomplete on
huponexit off
interactive_comments on
lithist off
login_shell on
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nullglob off
progcomp on
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off
C'est bizarre, j'ai le meme souci sur une redhat (sur un autre motif de fichier et sur un autre répertoire)
C'est encore plus bizarre que l'échappement devant * fonctionne: il ne devrait pas trouver avec
find /home/ -name "\*.csv" ?
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
16 juil. 2007 à 19:19
16 juil. 2007 à 19:19
Bingo! :)
Je suis sous mac, donc je n'ai pas le même message exactement, mais le problème est le même, comme quoi 1 heure de métro, ça permet de réfléchir...
Je suis sous mac, donc je n'ai pas le même message exactement, mais le problème est le même, comme quoi 1 heure de métro, ça permet de réfléchir...
PBG4:~ adrien$ mkdir -p test4tlep/home/outils/log PBG4:~ adrien$ cd test4tlep/ PBG4:~/test4tlep adrien$ touch a.txt b.txt PBG4:~/test4tlep adrien$ for i in a b c d e f g h; do > touch home/outils/log/$i.log > done PBG4:~/test4tlep adrien$ find home/outils/log/ -name *.txt find: b.txt: unknown expression primary PBG4:~/test4tlep adrien$En gros, l'expansion est (très logiquement) faite dans le répertoire d'où est lancé le find :-)
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
16 juil. 2007 à 20:54
16 juil. 2007 à 20:54
Je ne comprends pas: "l'expansion est faite dans le répertoire d'où est lancé le find"
Tu as compris le souci ??
Tu as compris le souci ??
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
16 juil. 2007 à 21:26
16 juil. 2007 à 21:26
Oui, j'ai compris (en tout cas, je le reproduit).
Si je reprend l'exemple que j'ai donné au dessus
Sinon, comment va ?
Toujours à Nantes ?
Si je reprend l'exemple que j'ai donné au dessus
#Création de l'arborescence de test PBG4:~ adrien$ mkdir -p test4tlep/home/outils/log PBG4:~ adrien$ cd test4tlep/ #Création dans le répertoire courant des fichier a.txt et b.txt PBG4:~/test4tlep adrien$ touch a.txt b.txt #Création des fichiers de log dans le répertoire cible de la commande find à jouer PBG4:~/test4tlep adrien$ for i in a b c d e f g h; do > touch home/outils/log/$i.log > done #Commande find a partir du repertoire test4tlep PBG4:~/test4tlep adrien$ find home/outils/log/ -name *.txt find: b.txt: unknown expression primary #dans le repertoire test4tlep *.txt devient "a.txt b.txt" d'où l'erreur, c'est troublant parcequ'on demande a find de chercher dans un autre répertoire (home/outils/log/) mais il est tout a fait logique que l'expansion soit faite a partir du répertoire courant comme dans ls *.txt PBG4:~/test4tlep adrien$En gros, dans mon exemple, taper la commande find home/outils/log/ -name *.txt dans le répertoire test4tlep revient a taper la commande find . -name a.txt b.txt dans le répertoire test4tlep/home/outils/log/
Sinon, comment va ?
Toujours à Nantes ?
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
118
17 juil. 2007 à 10:06
17 juil. 2007 à 10:06
On approche de l'explication.
En fait il y a 3 comptes root sur la machine:
root /root
root2 /home/root2
root3 /home/root3
(Tous les 3 ont UID=0)
Je m'aperçois que, quelque soit l'utilisateur (root, root2, root3), le find plante avec le motif "*.txt" dès qu'il est exécuté dans le répertoire /home/root2:
su root
cd /home/root2
find /home/outils/log -name *.txt
find: paths must precede expression
Usage: find [path...] [expression]
cd ..
find /home/outils/log -name *.txt
/home/outils/log/test.txt
C dingue hein ? :-))
-Ben non chuis a Redon en télétravail; et toi à toujours à Nantes ?
En fait il y a 3 comptes root sur la machine:
root /root
root2 /home/root2
root3 /home/root3
(Tous les 3 ont UID=0)
Je m'aperçois que, quelque soit l'utilisateur (root, root2, root3), le find plante avec le motif "*.txt" dès qu'il est exécuté dans le répertoire /home/root2:
su root
cd /home/root2
find /home/outils/log -name *.txt
find: paths must precede expression
Usage: find [path...] [expression]
cd ..
find /home/outils/log -name *.txt
/home/outils/log/test.txt
C dingue hein ? :-))
-Ben non chuis a Redon en télétravail; et toi à toujours à Nantes ?
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
>
tlep
Messages postés
596
Date d'inscription
jeudi 21 février 2002
Statut
Membre
Dernière intervention
25 octobre 2012
19 juil. 2007 à 12:05
19 juil. 2007 à 12:05
Pour le moment à Paris / La Défense dans une grosse SSII...