Aide commande UNIX
Marcel
-
jisisv Messages postés 3678 Statut Modérateur -
jisisv Messages postés 3678 Statut Modérateur -
Bonjour,
Je voulais savoir comment fesait t on pour cumuler les conditions pour un "find" :
par ex pour trouver les fichiers dont le nom commence par "a" OU par un "e"
j'ai essayé :
find ../rep -name "a*" -o "e*" -print
mais ca ne marche pas
(le probleme est bien ds le cumul des conditions...
cela marche bien si l'on met :
find ../rep -name "a*" -print
)
Merci d'Avance
Marcel!!!
Je voulais savoir comment fesait t on pour cumuler les conditions pour un "find" :
par ex pour trouver les fichiers dont le nom commence par "a" OU par un "e"
j'ai essayé :
find ../rep -name "a*" -o "e*" -print
mais ca ne marche pas
(le probleme est bien ds le cumul des conditions...
cela marche bien si l'on met :
find ../rep -name "a*" -print
)
Merci d'Avance
Marcel!!!
A voir également:
- Aide commande UNIX
- Invite de commande - Guide
- Commande terminal mac - Guide
- Diskpart commande - Guide
- Commande dism - Guide
- Commande scannow - Guide
3 réponses
Ben essaye
chez moi
fonctionne.
L'option -print ne donne pas le résultat attendu.
Quelle version de find utilises-tu. Bug dans ma version?
De toute manière , il faut dans ton cas utiliser deux option -name (ou utiliser des expressions régulières)
Tu peux aussi essayer:
(j'utilise -maxdepth pour ne pas parcourir les sous-répertoires)
Johan
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
chez moi
johand@horus:~$ ls GNUstep aub jamal mmq sound tmp ISOS downloads mbox perso src web News drivers.info mkurls.pl public_html switchlinux.swf johand@horus:~$ find -name "p*" -or -name "m*" -maxdepth 1 ./perso ./mbox ./mkurls.pl ./mmq ./public_html
fonctionne.
L'option -print ne donne pas le résultat attendu.
Quelle version de find utilises-tu. Bug dans ma version?
De toute manière , il faut dans ton cas utiliser deux option -name (ou utiliser des expressions régulières)
Tu peux aussi essayer:
find -name "[mp]*" -maxdepth 1
(j'utilise -maxdepth pour ne pas parcourir les sous-répertoires)
Johan
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
Salut,
Pour moi les deux commandes me donnent le même résultat.
# find -name "[mt]*"
# find -name m* -or -name t* ( ici on peut se passer des guillemets).
Je suis sous Mandrake 9.0
bob
Pour moi les deux commandes me donnent le même résultat.
# find -name "[mt]*"
# find -name m* -or -name t* ( ici on peut se passer des guillemets).
Je suis sous Mandrake 9.0
bob
Pour le print, c'est délicat :)
Bonche, a plus de copier coller moi :(
Pour reprendre l'exemple de jisisv:
en rajoutant un print.
en gros, find réagi comme suis.
Il prend en compte -maxdepth pour la totalitée de l'expression (bizzare d'ailleur, ça pourrait être encore plus souple)
ensuite, il recherche tout les fichiers commencant par 'p' OU tout les fichier commencant pas 'm' ET il les affiches.
Le truc c'est qu'il ne prend pas dans le sens attendu (p OU m) ET print mais comme cela p OU (m ETprint)
dans le man:
Ce qui fait que si l'on souhaite faire un print de tous les fichiers trouvés (inutil là puisque si ce n'est précisé nul part, c'est le comportement par defaut utilisé partout) ou un autre traitement, il faut utiliser:
@++
...Mana mana
Tutudutu...
Bonche, a plus de copier coller moi :(
Pour reprendre l'exemple de jisisv:
en rajoutant un print.
$ find -name "p*" -o -name "m*" -maxdepth 1 -printon retrouve que les noms commencant par 'm'
en gros, find réagi comme suis.
Il prend en compte -maxdepth pour la totalitée de l'expression (bizzare d'ailleur, ça pourrait être encore plus souple)
ensuite, il recherche tout les fichiers commencant par 'p' OU tout les fichier commencant pas 'm' ET il les affiches.
Le truc c'est qu'il ne prend pas dans le sens attendu (p OU m) ET print mais comme cela p OU (m ETprint)
dans le man:
expr1 -o expr2 Or; expr2 is not evaluated if expr1 is true.Là, on a expr1= -name "p*" et expr2= -name "s*" -print
Ce qui fait que si l'on souhaite faire un print de tous les fichiers trouvés (inutil là puisque si ce n'est précisé nul part, c'est le comportement par defaut utilisé partout) ou un autre traitement, il faut utiliser:
$ find -name "p*" -print -o -name "m*" -print -maxdepth 1Voilà pour la précision ;-)
@++
...Mana mana
Tutudutu...