[Shell] Restriction speciale dans un find

Résolu/Fermé
Signaler
Messages postés
91
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
23 avril 2009
-
Messages postés
91
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
23 avril 2009
-
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
^^

3 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
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
Messages postés
91
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
23 avril 2009
5
Merci pour ta simplification.

^^
0
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
Salut,

La réponse ne te convenait pas !? ;-\
0
Messages postés
91
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
23 avril 2009
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
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 900
Essaie :
find /home/zik/rock \
	/home/zik\trier \
	/home/zik\dub \( -name /home/zik/rock/archives20080501 -prune \) -o -name "redhot" -print
;-))
0
Messages postés
91
Date d'inscription
mardi 13 mai 2008
Statut
Membre
Dernière intervention
23 avril 2009
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