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 d'un fichier dans des dossiers


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    Par défaut Recherche d'un fichier dans des dossiers
    Bonjour,

    je découvre le terminal et la commande find !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find . -type d -name "nomdudossier*"
    me permet de trouver dans mon dossier tous les dossiers nommés nomdudossier suivis de plusieurs caractères.
    Je voudrais déjà savoir si c'est une bonne commande (car elle fonctionne, j'ai essayé)

    Je me pose la question du . après find, je ne comprends pas à quoi il sert !

    Par la suite , une fois bien compris le fonctionnement du find je souhaiterais chercher une aiguille dans une botte de foin !!

    Si la commande ci-dessus me permet de trouver 15 dossiers qui contiennent chacun 5 fichiers et que je cherche parmi ceux-ci celui qui possède la plus petite taille,
    comme je ne connais que ls -lh , je dois rentrer dans chaque dossier, donc 15 fois !!! Pour peu que je veuille aussi savoir lequel de tous ces fichiers contient un mot en particulier et que je n'ai pas de chance, je peux avoir à ouvrir 75 fichiers pour trouver le bon !!!
    Y a t-il une ligne de commande pour mon problème ? Et est-ce que find est la bonne commande ?

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Beaucoup de questions en une seule question.

    Je voudrais déjà savoir si c'est une bonne commande
    C'est une bonne commande.

    Je me pose la question du . après find, je ne comprends pas à quoi il sert !
    À rien. Tu peux indiquer le dossier dans lequel la commande s'exécute. Mais comme le dossier par défaut, si tu ne dis rien, est le dossier courant, inutile de préciser "." qui signifie "dossier courant".

    je cherche parmi ceux-ci celui qui possède la plus petite taille,
    Tu peux faire par exemple une conduite, pour trouver le dossier le moins plein.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -type d -name "nomdudossier*" | xargs du | sort -n | head -n 1
    find cherche. du donne la somme des poids des fichiers contenus. sort trie. head ne retient que la première ligne. Pour en savoir plus,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    man -P "less -p conduite" bash
    Cette dernière, pour les conduites.
    Exécute et regarde la sortie de chaque étage de la conduite pour bien comprendre les transformations successives.

    Pour peu que je veuille aussi savoir lequel de tous ces fichiers contient un mot en particulier
    Ça, c'est le travail de "grep". L'option -R travaille récursivement dans les sous-dossiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -R 'expression rationnelle à chercher' *
    Pour en savoir plus :

  3. #3
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 096
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 096
    Par défaut
    Salut,
    Citation Envoyé par Flodelarab Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    man -P "less -p conduite" bash
    Pattern not found (press RETURN) J'ai testé avec conduct (ocazoù), même résultat, et ce dans une vieille machine (8 ans d'âge) comme dans une récente (moins d'un an).

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 341
    Par défaut
    Je pense que c'est pour des man en français, la variante pour le man en anglais est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    man -P "less -p Pipelines" bash

  5. #5
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 096
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 096
    Par défaut
    Bien vu, merci !

    Du coup, je me retrouve avec un manuel complet de Bash (pas très commode à lire, faut l'avouer -- un jour faudra que je me paye un bouquin papier, c'est quand même mieux).

    (PS HS en forme de MP : mes 2 vm's tournent en boucle comme des folles, ça sent bon, des news + tard…)

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    Par défaut
    Merci pour vos réponses,

    je vais aller approfondir les nouvelles commandes que vous m'avez présentées, je prends le temps...!

  7. #7
    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
    Citation Envoyé par Ushuango Voir le message
    Si la commande ci-dessus me permet de trouver 15 dossiers qui contiennent chacun 5 fichiers et que je cherche parmi ceux-ci celui qui possède la plus petite taille
    Si c'est le fichier de plus petite taille qui t'intéresse, alors tu peux faire afficher par find cette taille suivie du nom de fichier en jouant sur les options de la commande -printf de find (voir le manuel pour ça).
    Ensuite, tu passes le résultat à sort comme indiqué par Flodelarab ci-dessus.

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

Discussions similaires

  1. [Batch] Copier et renommer des fichiers dans des dossiers et sous dossiers
    Par KeuZzDar dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 05/12/2018, 14h46
  2. Réponses: 2
    Dernier message: 16/05/2017, 11h56
  3. Extrcation automatique des fichiers dans des dossiers
    Par vinvol dans le forum VBScript
    Réponses: 6
    Dernier message: 16/06/2012, 22h12
  4. Réponses: 12
    Dernier message: 11/05/2012, 11h17
  5. Réponses: 0
    Dernier message: 15/03/2010, 23h45

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