[Shell] Restriction speciale dans un find

Résolu
JOBiJOBa2 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -  
JOBiJOBa2 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
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
^^
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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$
;-))
1
JOBiJOBa2 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci pour ta simplification.

^^
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

La réponse ne te convenait pas !? ;-\
0
JOBiJOBa2 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   5
 
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



0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Essaie :
find /home/zik/rock \
	/home/zik\trier \
	/home/zik\dub \( -name /home/zik/rock/archives20080501 -prune \) -o -name "redhot" -print
;-))
0
JOBiJOBa2 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   5
 
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.
^^
0