Contenu | Rechercher | Menus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
recherche_ligne_commande [Le 08/01/2014, 22:17]
90.28.155.86 [grep]
recherche_ligne_commande [Le 08/04/2018, 13:14] (Version actuelle)
86.218.243.219 [Rechercher des fichiers en ligne de commande]
Ligne 1: Ligne 1:
-{{tag>Dapper Edgy Feisty Gutsy Hardy}}+{{tag>Xenial système}}
  
 ---- ----
 +
 +{{ logo_loupe.jpg?​100}}
  
 ====== Rechercher des fichiers en ligne de commande====== ====== Rechercher des fichiers en ligne de commande======
-{{logo_loupe.jpg?​100}}+
  
 ===== De quoi s'​agit-il ? ===== ===== De quoi s'​agit-il ? =====
Ligne 16: Ligne 18:
 Son point fort : la recherche systématique.\\ Son point fort : la recherche systématique.\\
 **find** est un besogneux qui arpente vos dossiers infatigablement. Il a accès à la totalité de l'​arborescence mais il vous est vivement conseillé de la circonscrire si l'on veut obtenir un résultat dans un délai correct. L'​interface le permet ​ de façon simple pour un débutant avec notamment l'​inclusion des signets de **Nautilus** et une fonction "​autre"​ destinée à sélectionner le répertoire que vous lui désignez. ​ **find** est un besogneux qui arpente vos dossiers infatigablement. Il a accès à la totalité de l'​arborescence mais il vous est vivement conseillé de la circonscrire si l'on veut obtenir un résultat dans un délai correct. L'​interface le permet ​ de façon simple pour un débutant avec notamment l'​inclusion des signets de **Nautilus** et une fonction "​autre"​ destinée à sélectionner le répertoire que vous lui désignez. ​
-Voir [[:​tutoriel:​console_commandes_de_base#​find]].2+Voir [[:​tutoriel:​console_commandes_de_base#​find]].
  
 +===== fd =====
 +
 +Une alternative à find : [[https://​github.com/​sharkdp/​fd|fd sur github]].
 ===== grep ===== ===== grep =====
 Son point fort : la recherche plein texte.\\ Son point fort : la recherche plein texte.\\
 L'​interface peut grâce à cette commande réaliser dans certaines conditions une recherche plein texte. **grep** est optimisé pour le travail en console portant sur la recherche à l'​intérieur de fichiers créés par un éditeur de texte et surtout pour le monde raréfié des expressions rationnelles. Il donne avec cette interface de bons résultats pour les fichiers aux formats proches du format texte (txt, rtf, abw) mais aucun notamment avec les formats odt et pdf.  L'​interface peut grâce à cette commande réaliser dans certaines conditions une recherche plein texte. **grep** est optimisé pour le travail en console portant sur la recherche à l'​intérieur de fichiers créés par un éditeur de texte et surtout pour le monde raréfié des expressions rationnelles. Il donne avec cette interface de bons résultats pour les fichiers aux formats proches du format texte (txt, rtf, abw) mais aucun notamment avec les formats odt et pdf. 
 Enfin, on peut considérer que l'​adaptation graphique de **grep** aux besoins courants (14 choix possibles...) constitue un effort remarquable au profit de l'​utilisateur moyen sinon du pur débutant. ​ Enfin, on peut considérer que l'​adaptation graphique de **grep** aux besoins courants (14 choix possibles...) constitue un effort remarquable au profit de l'​utilisateur moyen sinon du pur débutant. ​
-Voir [[:​tutoriel:​console_commandes_de_base#​grep]] +Voir [[:​tutoriel:​console_commandes_de_base#​grep]]. 
-<note tip>Par contre cet outil ne permet pas de chercher dans les fichiers type **.odt** dont le contenu est compressé. pour ce faire on utilisera la ligne de commandes ​en combinant find grep et unzip, pour cela adaptez cette commande à votre cas : +<note tip>Par contre cet outil ne permet pas de chercher dans les fichiers type **.odt** dont le contenu est compressé. pour ce faire on utilisera la ligne de commande ​en combinant find grep et unzip, pour cela adaptez cette commande à votre cas : 
   find chemin/​du/​répertoire -name '​*.odt'​ -exec sh -c 'unzip -c "​{}"​ content.xml | grep -qi "​motàchercher"'​ ";"​ -print   find chemin/​du/​répertoire -name '​*.odt'​ -exec sh -c 'unzip -c "​{}"​ content.xml | grep -qi "​motàchercher"'​ ";"​ -print
- ​référence ​trouvée dans cet [[http://​www.linuxpedia.fr/​doku.php/​commande/​grep_egrep|article de linuxpedia]]+(Référence ​trouvée dans cet [[http://​www.linuxpedia.fr/​doku.php/​commande/​grep_egrep|article de Linuxpedia]]). 
 + 
 +Pour ce qui est des fichiers **.pdf**, la recherche se fera aussi en ligne de commande de la même façon qu'​avec **grep** mais en installant auparavant **[[apt>​pdfgrep]]**.</​note>​ 
 +Nota : lorsque la recherche plein texte porte sur la totalité du système de fichiers, il peut arriver que l'​outil de recherche vous indique n'​avoir pas eu la permission d'​ouvrir certains fichiers. Bien que ceci n'ait rien d'​anormal,​ essayez de préférence dans ce cas de limiter le périmètre de recherche. 
 + 
 +===== Ripgrep =====
  
-Pour ce qui est des fichiers **.pdf**, la recherche se fera aussi en ligne de commande de la même façon qu'avec grep mais en installant auparavant pdfgrep</​note>​ +[[https://​github.com/​BurntSushi/​ripgrep|Ripgrep]] ​est une alternative à Grep mais avec ces avantages :  
-Nota : lorsque la recherche plein texte porte sur la totalité du système ​de fichiers, il peut arriver que l'outil de recherche vous indique n'​avoir pas eu la permission d'​ouvrir certains fichiers. Bien que ceci n'ait rien d'​anormal,​ essayez de préférence dans ce cas, de limiter le périmètre de recherche ​+- gestion complète ​de l'Unicode 
 +- beaucoup plus rapide
  
 +Installable via un [[https://​launchpad.net/​~x4121/​+archive/​ubuntu/​ripgrep|PPA]]
 ===== locate et mlocate ===== ===== locate et mlocate =====
 Les fonctions de **locate** peuvent être fournies par les paquets **locate** et **mlocate**. Ils se différencient par les points suivants: ​ Les fonctions de **locate** peuvent être fournies par les paquets **locate** et **mlocate**. Ils se différencient par les points suivants: ​
-  * mlocate ajoute un horodatage qui accélére ​significativement la ré-indexation.+  * mlocate ajoute un horodatage qui accélère ​significativement la ré-indexation.
   * mlocate respecte les droits utilisateurs pour des raisons de sécurité (pas d'info sur /root par exemple pour user).   * mlocate respecte les droits utilisateurs pour des raisons de sécurité (pas d'info sur /root par exemple pour user).
  
Ligne 38: Ligne 50:
  
 ==== Fonctionnement ==== ==== Fonctionnement ====
-**locate** utilise une base de données indexées listant tous les répertoires et fichiers du champ concerné ​ située à  /​var/​lib/​mlocate/​mlocate.db. Par défaut sous Jaunty, le fichier /​etc/​cron.daily/​mlocate lance l'​indexation chaque jour. Grâce à cela, **locate** va pouvoir trouver instantanément tout ce qui existait avant le dernier démarrage. ​ Tout comme **find**, ​ **locate** ​ peut indexer de nombreux systèmes de fichiers (ext4, ext3, reiserfs, Fat32, NTFS, etc.).+**locate** utilise une base de données indexées listant tous les répertoires et fichiers du champ concerné ​ située à  /​var/​lib/​mlocate/​mlocate.dba. Par défaut sous Jaunty, le fichier /​etc/​cron.daily/​mlocate lance l'​indexation chaque jour. Grâce à cela, **locate** va pouvoir trouver instantanément tout ce qui existait avant le dernier démarrage. ​ Tout comme **find**, ​ **locate** ​ peut indexer de nombreux systèmes de fichiers (ext4, ext3, reiserfs, Fat32, NTFS, etc.).
  
 ==== Contrainte temps ==== ==== Contrainte temps ====
Ligne 44: Ligne 56:
 Si vous utilisez l'​hibernation ou la mise en veille pendant une longue période, comprenez que l'​indexation n'a été lancée qu'au dernier démarrage de votre machine. **locate** seule ne pourra donc retrouver un fichier récemment installé ou déplacé sans ré-indexation. Depuis la mise en service de **mlocate**,​ celle-ci ne prend généralement que quelques secondes. Tapez sur votre console : Si vous utilisez l'​hibernation ou la mise en veille pendant une longue période, comprenez que l'​indexation n'a été lancée qu'au dernier démarrage de votre machine. **locate** seule ne pourra donc retrouver un fichier récemment installé ou déplacé sans ré-indexation. Depuis la mise en service de **mlocate**,​ celle-ci ne prend généralement que quelques secondes. Tapez sur votre console :
 <​code>​ <​code>​
-sudo updatedb+sudo updatedb
 </​code>​ </​code>​
 et attendez le retour du prompt. et attendez le retour du prompt.
Ligne 61: Ligne 73:
  - Ouvrez la console. Tapez en cas de contrainte éventuelle :  - Ouvrez la console. Tapez en cas de contrainte éventuelle :
 <​code>​ <​code>​
-sudo updatedb+sudo updatedb
 </​code>​ </​code>​
 puis pour lancer la recherche, tout simplement : puis pour lancer la recherche, tout simplement :
 <​code>​ <​code>​
-locate bidule+locate bidule
 </​code>​ </​code>​
 la console affichera alors tous les chemins incluant le mot bidule. la console affichera alors tous les chemins incluant le mot bidule.
Ligne 79: Ligne 91:
 Il peut arriver que **locate** recense plus de 500 réponses positives soit plus que la valeur par défaut des lignes d'​historique de la console Gnome. Problème : la console n'​affichera alors que le bas de la liste. Pour y remédier, ajouter juste un "​tube"​ avec **less** (voir : [[:​tutoriel:​console_commandes_de_base|Commandes de base]] Vous pourrez ainsi afficher les résultats page par page à partir de la première page. Il peut arriver que **locate** recense plus de 500 réponses positives soit plus que la valeur par défaut des lignes d'​historique de la console Gnome. Problème : la console n'​affichera alors que le bas de la liste. Pour y remédier, ajouter juste un "​tube"​ avec **less** (voir : [[:​tutoriel:​console_commandes_de_base|Commandes de base]] Vous pourrez ainsi afficher les résultats page par page à partir de la première page.
 <​code>​ <​code>​
-locate .mp3 | less+locate .mp3 | less
 </​code>​ </​code>​
  
 Si la liste est encore trop importante, vous pouvez rajouter un deuxième critère de recherche avec la commande grep de la façon suivante : Si la liste est encore trop importante, vous pouvez rajouter un deuxième critère de recherche avec la commande grep de la façon suivante :
 <​code>​ <​code>​
-locate icon | grep firefox | less+locate icon | grep firefox | less
 </​code>​ </​code>​
 Vous pouvez aussi sauvegarder le résultat de votre recherche dans un fichier créé à cet effet (nom choisi : liste.txt) : Vous pouvez aussi sauvegarder le résultat de votre recherche dans un fichier créé à cet effet (nom choisi : liste.txt) :
 <​code>​ <​code>​
-locate .mp3 | tee liste.txt+locate .mp3 | tee liste.txt
 # ou bien : # ou bien :
-locate .mp3>​liste.txt+locate .mp3>​liste.txt
 </​code>​ </​code>​
  
Ligne 108: Ligne 120:
   *Utiliser la console pour lancer **dpkg**   *Utiliser la console pour lancer **dpkg**
 <​code>​ <​code>​
-dpkg -L bidule+dpkg -L bidule
 </​code>  ​ </​code>  ​
-  *Utiliser le menu système >​administration>​[[synaptic|Gestionnaire de paquets synaptic]]+  * Utiliser le [[synaptic|Gestionnaire de paquets synaptic]]
 La procédure est plus longue : Synaptic est lancé après le mot de passe. Recherchez votre fichier. Une fois que le paquet recherché apparait dans le listing de droite, sélectionnez-le,​ faites un clic droit et sélectionnez propriétés > fichiers installés. Vous verrez enfin dans une petite fenêtre l'​endroit où est installé votre fichier. La procédure est plus longue : Synaptic est lancé après le mot de passe. Recherchez votre fichier. Une fois que le paquet recherché apparait dans le listing de droite, sélectionnez-le,​ faites un clic droit et sélectionnez propriétés > fichiers installés. Vous verrez enfin dans une petite fenêtre l'​endroit où est installé votre fichier.
   *Les autres   *Les autres
-Citons notamment le logiciel "​**[[:​Aptitude]]**"​ qui a aussi une fonction de recherche. ​Lien (anglais) ici +Citons notamment le logiciel "​**[[:​Aptitude]]**"​ qui a aussi une fonction de recherche.
-[[http://​web.pdx.edu/​~hegbloom/​Aptitude/​tutorial-intro-aptitude_0.html]]+
  
 ===== Rechercher avec une interface graphique ===== ===== Rechercher avec une interface graphique =====
-Comme vous l'avez compris, point d'​interface,​ de jolis icônes ou d'​effets spectaculaires. Pour tous ces besoins ou parce que la ligne de commande vous donne la migraine, voyez la page consacrée à la [[:​recherche_de_fichiers|recherche de fichiers en mode graphique]] +Comme vous l'avez compris, point d'​interface,​ de jolis icônes ou d'​effets spectaculaires. Pour tous ces besoins ou parce que la ligne de commande vous donne la migraine, voyez la page consacrée à la [[:​recherche_de_fichiers|recherche de fichiers en mode graphique]].
 ===== Pages en relation avec le sujet ===== ===== Pages en relation avec le sujet =====
  


Le contenu de ce wiki est sous licence : CC BY-SA v3.0