[Shell] Restriction speciale dans un find
Résolu
JOBiJOBa2
Messages postés
93
Statut
Membre
-
JOBiJOBa2 Messages postés 93 Statut Membre -
JOBiJOBa2 Messages postés 93 Statut Membre -
Bonjour,
j'ai une arborescence comme ci-dessous et je voudrais pouvoir rechercher un fichier avec son chemin.
Sachant que je fais une recherche de ce style :
Comment restreindre la recherche dans le fichier /home/zik/rock/, car /home/zik/rock/archives20080501 est un fichier d'archive et des doublons peuvent être présent?
J'ai essayé avec -maxdepth 1 mais il me dit que l'option est invalide.<code>
Merci d'avance
^^
j'ai une arborescence comme ci-dessous et je voudrais pouvoir rechercher un fichier avec son chemin.
home (rep)
zik (rep)
rock (rep)
redhot (fic)
archives20080501 (rep)
redhot (fic)
trier (rep)
dub (rep)
autres(rep)
Sachant que je fais une recherche de ce style :
find /home/zik/rock \ /home/zik\trier \ /home/zik\dub -name "redhot" <option?> >> fichier.txt
Comment restreindre la recherche dans le fichier /home/zik/rock/, car /home/zik/rock/archives20080501 est un fichier d'archive et des doublons peuvent être présent?
J'ai essayé avec -maxdepth 1 mais il me dit que l'option est invalide.<code>
Merci d'avance
^^
3 réponses
-
Mais bon tu t'embêtes pour rien :
jp@MDK:~/tmpfs ssh$ tree . |-- autres | `-- autres.txt |-- dub | `-- dub.txt |-- trier | `-- trier.txt `-- zip `-- rock `-- redhot `-- archives20880501 `-- redhot.txt 7 directories, 4 files jp@MDK:~/tmpfs ssh$ find . \( -name archives20880501 -prune \) -o -type f -name "*.txt" -print ./autres/autres.txt ./dub/dub.txt ./trier/trier.txt jp@MDK:~/tmpfs ssh$;-))
-
-
Je n'arrive pas à l'appliquer sur cette exemple.
peut être que c'est parce que la solution était avec un find simple :
find rep1
Et pas avec un find "double" :
find /home/zik/rock \ /home/zik\trier \ /home/zik\dub -name "redhot"
Je fais ça:
find /home/zik/rock \ /home/zik\trier \ /home/zik\dub \ ( -name /home/zik/rock/archives20080501 -prune \) -name "redhot"
et il me met :ksh: syntax error: `(' unexpected
Je viens d'essayer ça :
find /home/zik/rock \ /home/zik\trier \ /home/zik\dub \ -name /home/zik/rock/archives20080501 -prune \ "redhot"
et il me met :find: missing conjunction
-
-
Essaie :
find /home/zik/rock \ /home/zik\trier \ /home/zik\dub \( -name /home/zik/rock/archives20080501 -prune \) -o -name "redhot" -print
;-))
-
Impeccable cela marche encore grâce à toi jipicy.
Ma première erreur était l'oubli de l'espace entre "/home/zik\dub \" et "( -name /home/zik/ ".
Ma deuxième était l'oubli de "-o" et "-print".
Donc la réponse est bien:
find /home/zik/rock \ /home/zik\trier \ /home/zik\dub \( -name /home/zik/rock/archives20080501 -prune \) -o -name "redhot" -print
Merci pour tout.
^^
-