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 :

Recherche dans sous dossier variable


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 13
    Par défaut Recherche dans sous dossier variable
    Bonjour,

    Sur mon NAS linux, j'ai une arborescence de ce type : /XXX/YYY/ZZZ/

    XXX correspond à une agence
    YYY correspond à un service
    ZZZ correspond à une année

    Dans chaque dossier ZZZ il y a des fichiers PDF.

    Je cherche une commande qui me permettrait pour une agence donné de lister tous les fichiers pdf qui sont dans un sous dossier particulier quelque soit le service.

    Si je ne suis pas assez clair, voici un exemple


    001 001 2018 01012018_1.pdf
    01012018_2.pdf
    01012018_3.pdf
    ...
    2019 01012019_1.pdf
    01012019_2.pdf
    01012019_3.pdf
    ...
    001 002 2018 02012018_1.pdf
    11112018_2.pdf
    01012018_3.pdf
    ...
    2019 01012019_1.pdf
    01012019_2.pdf
    01012019_3.pdf
    ... ... ...


    J'ai éssayé d'utiliser la commande "find "/*/2019/" -name "*.pdf"" mais "*" n'est pas reconnu.

    Quelqu'un aurait une solution simple pour résoudre mon problème?

    Merci
    Cordialement

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 663
    Par défaut
    Bonjour

    dans un cas il faut mettre des guillemets, dans l'autre il faut ne pas en mettre.

    quand on indique le chemin de recherche à find, il ne faut pas mettre de guillemets pour que le shell effectue correctement le développement de chemins.
    alors qu'il faut protéger l'astérisque dans le motif indiqué comme nom (-name) de fichier.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 13
    Par défaut
    Bonjour,

    Merci pour la réponse.
    J'ai aussi essayé : find /*/2019/ -name "*.pdf"
    Sauf que j'ai une erreur qui dit
    find: /*/2019/: No such file or directory

    Mon problème c'est de rendre mon sous dossier variable pour balayer l'ensemble des sous dossiers.

    Cordialement

  4. #4
    Membre émérite Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 348
    Par défaut
    La variabilité du chemin ne doit pas porter(1) sur le répertoire de base, utilise l'option -path plutôt :
    (1) : ou plutôt : « il est préférable que la variabilité du chemin ne porte pas sur le répertoire de base », à moins que ça ne soit qu'une préférence personnelle…

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2018
    Messages : 13
    Par défaut
    Bonjour,

    Désolé, je suis débutant sur linux.
    Tu pourrais écrire l'instruction compléte?

    J'ai tester find . -path -name "*.pdf" est j'i une erreur d'utilisation.

    Merci

  6. #6
    Membre émérite Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 348
    Par défaut
    Fais un effort et va voir dans le manuel de find comment on utilise l'option -path.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par aa73_LD Voir le message
    Sur mon NAS linux, j'ai une arborescence de ce type : /XXX/YYY/ZZZ/
    À vérifier, mais, comme dit dans plusieurs réponses, es-tu sûr que ton arborescence est bien située à la racine (/XXX/YYY/ZZZ/) ?
    N'est-elle pas plutôt locale à un répertoire home par exemple?
    Dans ce cas, il vaut mieux la décrire comme XXX/YYY/ZZZ/ ou bien comme ./XXX/YYY/ZZZ/

    Pour vérifier, regarde le résultat des commandes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ls -ld /XXX/YYY/ZZZ/
    ls -ld XXX/YYY/ZZZ/
    ls -ld ./XXX/YYY/ZZZ/

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/05/2010, 10h43
  2. [XL-2007] recherche fichiers dans sous-dossier
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/03/2010, 09h19
  3. [BATCH] Recherche dans sous-dossiers
    Par tonf dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 13/08/2008, 15h17
  4. Recherche dans sous-formulaire
    Par Junior_jef dans le forum IHM
    Réponses: 2
    Dernier message: 27/06/2007, 09h14
  5. Recherche dans sous formulaires
    Par dfournier dans le forum IHM
    Réponses: 5
    Dernier message: 08/12/2005, 17h43

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