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
recherche_ligne_commande [Le 08/07/2021, 13:26]
62.251.161.88 [Contrainte temps]
recherche_ligne_commande [Le 11/09/2022, 10:32] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 9: Ligne 9:
  
 ===== De quoi s'​agit-il ? ===== ===== De quoi s'​agit-il ? =====
-Que vous n'​aimiez pas les applications graphiques ou que vous administriez une machine sans environnement de bureau, vous aurez rapidement besoin de chercher, et surtout de trouver des fichiers, qu'ils soient fichiers système ou fichiers personnels. ​+Que vous n'​aimiez pas les applications graphiques ou que vous administriez une machine sans environnement de bureau, vous aurez rapidement besoin de chercher, et surtout de trouver des fichiers, qu'ils soient fichiers système ou fichiers personnels.
  
 Il existe des commandes utilisables dans une console ou un script de recherche facilitant ces accès, sans avoir besoin de parcourir inlassablement vos dossiers. Il existe des commandes utilisables dans une console ou un script de recherche facilitant ces accès, sans avoir besoin de parcourir inlassablement vos dossiers.
Ligne 17: Ligne 17:
 ===== find ===== ===== find =====
 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]]. Voir [[:​tutoriel:​console_commandes_de_base#​find]].
  
Ligne 27: Ligne 27:
 ===== 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 commande 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]]).
Ligne 39: Ligne 39:
 ===== Ripgrep ===== ===== Ripgrep =====
  
-[[https://​github.com/​BurntSushi/​ripgrep|Ripgrep]] est une alternative à Grep mais avec ces avantages : +[[https://​github.com/​BurntSushi/​ripgrep|Ripgrep]] est une alternative à Grep mais avec ces avantages :
 - gestion complète de l'​Unicode - gestion complète de l'​Unicode
 - beaucoup plus rapide - beaucoup plus rapide
Ligne 45: Ligne 45:
 Installable via un [[https://​launchpad.net/​~jerem-ferry/​+archive/​ubuntu/​rust|PPA]] Installable via un [[https://​launchpad.net/​~jerem-ferry/​+archive/​ubuntu/​rust|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).
  
-Que vous ayez l'un ou l'​autre de ces paquets, ou les deux paquets installés,​les commandes en console et les fichiers de configuration restent //​rigoureusement les mêmes//​. ​ Si vous installez les deux paquets, vous bénéficierez de la vitesse de **mlocate** sans être contraint par ses limitations. Regardez aussi à ce sujet le paragraphe sécurité plus bas. +Que vous ayez l'un ou l'​autre de ces paquets, ou les deux paquets installés,​les commandes en console et les fichiers de configuration restent //​rigoureusement les mêmes//​. ​ Si vous installez les deux paquets, vous bénéficierez de la vitesse de **mlocate** sans être contraint par ses limitations. Regardez aussi à ce sujet le paragraphe sécurité plus bas.
  
  
Ligne 57: Ligne 57:
  
 Nota : l'​espace de recherche est paramétrable par édition du fichier de configuration /​etc/​updatedb.conf. Nota : l'​espace de recherche est paramétrable par édition du fichier de configuration /​etc/​updatedb.conf.
-Dans ce fichier, c'est le champ "​PRUNEPATH"​ qui interdit par défaut l'​indexation des chemins suivants: "/tmp, /var, /spool, /​media"​. ​ +Dans ce fichier, c'est le champ "​PRUNEPATH"​ qui interdit par défaut l'​indexation des chemins suivants: "/tmp, /var, /spool, /​media"​.
  
 ==== Utilisation ==== ==== Utilisation ====
 **locate** trouvera instantanément le chemin de l'​élément recherché à deux conditions : **locate** trouvera instantanément le chemin de l'​élément recherché à deux conditions :
   *temps : le répertoire ou le fichier a été ajouté ou déplacé avant la dernière indexation.   *temps : le répertoire ou le fichier a été ajouté ou déplacé avant la dernière indexation.
-  *espace : le répertoire ou le fichier est situé dans l'​espace décrit ci-dessus. ​+  *espace : le répertoire ou le fichier est situé dans l'​espace décrit ci-dessus.
  
  - Ouvrez la console. Tapez en cas de contrainte éventuelle :  - Ouvrez la console. Tapez en cas de contrainte éventuelle :
Ligne 75: Ligne 75:
  
 ==== Et si... ==== ==== Et si... ====
-  *je monte une nouvelle partition ?  +  *je monte une nouvelle partition ?
 La  base de données de locate représente environ un demi-millième de vos données, soit 2 mégas pour 4 gigas de données. Si vous montez par exemple une partition Suse de 4 Gigas sur /mnt/suse et vous ré-indexez (1 à 2 min.) la nouvelle base va doubler de taille (4 mégas) et permettra à **locate** d'y chercher sans problème. Si vous démontez cette partition Suse,  **locate** ne vous donnera plus de résultat sur la partition démontée. La  base de données de locate représente environ un demi-millième de vos données, soit 2 mégas pour 4 gigas de données. Si vous montez par exemple une partition Suse de 4 Gigas sur /mnt/suse et vous ré-indexez (1 à 2 min.) la nouvelle base va doubler de taille (4 mégas) et permettra à **locate** d'y chercher sans problème. Si vous démontez cette partition Suse,  **locate** ne vous donnera plus de résultat sur la partition démontée.
    
-Par contre, toute partition montée de façon permanente sur l'​arborescence /mnt (et non /media rappelez-vous !) sera indexée automatiquement chaque jour. +Par contre, toute partition montée de façon permanente sur l'​arborescence /mnt (et non /media rappelez-vous !) sera indexée automatiquement chaque jour.
  
   *j'​obtiens trop de réponses ?   *j'​obtiens trop de réponses ?
-Vous cherchez par exemple avec locate le suffixe .mp3 ou .rtf. +Vous cherchez par exemple avec locate le suffixe .mp3 ou .rtf.
 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>​
Ligne 105: Ligne 105:
 Si cela constitue un souci pour vous, il ne vous faudra installer que le paquet **mlocate**. Si cela constitue un souci pour vous, il ne vous faudra installer que le paquet **mlocate**.
  
-> Conclusion : **locate** est un outil aussi simple que pratique ne présentant que de faibles contraintes. ​+> Conclusion : **locate** est un outil aussi simple que pratique ne présentant que de faibles contraintes.
  
 ===== Recherches spécialisées ===== ===== Recherches spécialisées =====
Ligne 128: Ligne 128:
 ---- ----
  
-//​Contributeurs : [[utilisateurs:​roger64]],​ [[utilisateurs:​poupoul2]]// ​+//​Contributeurs : [[utilisateurs:​roger64]],​ [[utilisateurs:​poupoul2]]//​
  
  • recherche_ligne_commande.txt
  • Dernière modification: Le 11/09/2022, 10:32
  • par moths-art