IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Trouver des fichiers en excluant certains dossiers


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Points : 64
    Points
    64
    Par défaut Trouver des fichiers en excluant certains dossiers
    Bonjour,

    Je recherche l'ensemble des fichiers du disque s'intitulant "toto.ini" en excluant le parcourir certains dossiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find / -iname "toto.ini" -a \( -path /[.]* -o -path /Library -o -path /Network -o -path /System -o -path /Volumes -o -path /bin -o -path /cores -o -path /dev -o -path /etc -o -path /net -o -path /private -o -path /sbin -o -path /tmp -o -path /usr -o -path /var -o -path /vm -o -path /root \) -prune 2> /dev/null
    Malheureusement cela ne marche pas. Si je fais "-iname "toto.ini" -o" au lieu de "-iname "toto.ini" -a" il me trouve des résultats mais trop...

    Quelqu'un saurait me dire où est-ce que je me rate ?
    Merci bien par avance !!

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Lorsque tu fais -a, tu fais un ET logique, tu dois valider les deux conditions pour que cela ressorte TRUE.
    Lorsque tu fais -o, tu fais un OU logique, ton dès que tu as le nom "toto.ini", le reste des conditions n'est pas évaluée parce que le résultat sera vrai.

    Quelque chose comme ceci me semble plus logique, ou l'on va nier avec !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find /  -name "toto.ini" -a ! \(  -path "/repertoireExclu1/*" -o -path "/repertoireExclu2/*"  \)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Points : 64
    Points
    64
    Par défaut
    Bonjour Becket ! merci de me répondre, en effet c'est bien le "-a" que je souhaite. Dans ta solution, ce qui m'embête c'est qu'il me semble que find va quand-même parser le contenu des dossiers exclus et je veux éviter cela car la recherche sera déjà assez longue (d'où mon utilisation de -prune). Ai-je raison ?

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Alors tu inverses les conditions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find /  -not  \(  -path "/repertoireExclu1/*" -o -path "/repertoireExclu2/*"  \) -a -name "toto.ini"

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Points : 64
    Points
    64
    Par défaut
    Cela semble bien fonctionner !!

    NB : Sur le coup je n'avais pas mis les guillemets autour des chemins et ça ne fonctionnait pas.

    Merci pour ton aide !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/10/2008, 09h17
  2. transférer des fichiers dans un autre dossier de façon dynamique
    Par soria_t dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/08/2008, 17h28
  3. trouver des fichiers
    Par mercure07 dans le forum Apple
    Réponses: 0
    Dernier message: 22/02/2008, 19h41
  4. [Regexp] pattern pour trouver des fichiers par exclusion d'extension
    Par mnementh64 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 07/09/2006, 11h34
  5. rechercher des fichiers dans tous les dossiers
    Par nitteo dans le forum MFC
    Réponses: 4
    Dernier message: 23/06/2006, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo