[Shell] Restriction speciale dans un find

Résolu
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.

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

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

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

    La réponse ne te convenait pas !? ;-\
    0
    1. JOBiJOBa2 Messages postés 93 Statut Membre 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
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Essaie :
    find /home/zik/rock \
    	/home/zik\trier \
    	/home/zik\dub \( -name /home/zik/rock/archives20080501 -prune \) -o -name "redhot" -print
    ;-))
    0
    1. JOBiJOBa2 Messages postés 93 Statut Membre 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