Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
recherche_ligne_commande [Le 03/09/2009, 11:54] – sécurité 213.95.41.13 | recherche_ligne_commande [Le 14/10/2018, 13:17] (Version actuelle) – [Rechercher des packages] 86.218.236.231 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{ logo_loupe.jpg? | ||
+ | |||
+ | ====== Rechercher des fichiers en ligne de commande====== | ||
+ | |||
+ | |||
+ | ===== De quoi s' | ||
+ | Que vous n' | ||
+ | |||
+ | 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. | ||
+ | |||
+ | **Ne cherchez plus vos fichiers, trouvez les...** | ||
+ | |||
+ | ===== find ===== | ||
+ | Son point fort : la recherche systématique.\\ | ||
+ | **find** est un besogneux qui arpente vos dossiers infatigablement. Il a accès à la totalité de l' | ||
+ | Voir [[: | ||
+ | |||
+ | ===== fd ===== | ||
+ | |||
+ | Une alternative à find : [[https:// | ||
+ | |||
+ | Installable via un [[https:// | ||
+ | ===== grep ===== | ||
+ | Son point fort : la recherche plein texte.\\ | ||
+ | L' | ||
+ | Enfin, on peut considérer que l' | ||
+ | Voir [[: | ||
+ | <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/ | ||
+ | (Référence trouvée dans cet [[http:// | ||
+ | |||
+ | Pour ce qui est des fichiers **.pdf**, la recherche se fera aussi en ligne de commande de la même façon qu' | ||
+ | Nota : lorsque la recherche plein texte porte sur la totalité du système de fichiers, il peut arriver que l' | ||
+ | |||
+ | ===== Ripgrep ===== | ||
+ | |||
+ | [[https:// | ||
+ | - gestion complète de l' | ||
+ | - beaucoup plus rapide | ||
+ | |||
+ | Installable via un [[https:// | ||
+ | ===== locate et mlocate ===== | ||
+ | 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 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' | ||
+ | |||
+ | ==== Fonctionnement ==== | ||
+ | **locate** utilise une base de données indexées listant tous les répertoires et fichiers du champ concerné | ||
+ | |||
+ | ==== Contrainte temps ==== | ||
+ | Quand ré-indexer ? | ||
+ | Si vous utilisez l' | ||
+ | < | ||
+ | sudo updatedb | ||
+ | </ | ||
+ | et attendez le retour du prompt. | ||
+ | |||
+ | ==== Contrainte espace ==== | ||
+ | L' | ||
+ | |||
+ | Nota : l' | ||
+ | Dans ce fichier, c'est le champ " | ||
+ | |||
+ | ==== Utilisation ==== | ||
+ | **locate** trouvera instantanément le chemin de l' | ||
+ | *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' | ||
+ | |||
+ | - Ouvrez la console. Tapez en cas de contrainte éventuelle : | ||
+ | < | ||
+ | sudo updatedb | ||
+ | </ | ||
+ | puis pour lancer la recherche, tout simplement : | ||
+ | < | ||
+ | locate fichier | ||
+ | </ | ||
+ | la console affichera alors tous les chemins incluant le mot bidule. | ||
+ | |||
+ | ==== Et si... ==== | ||
+ | *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. | ||
+ | |||
+ | Par contre, toute partition montée de façon permanente sur l' | ||
+ | |||
+ | *j' | ||
+ | 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' | ||
+ | < | ||
+ | locate .mp3 | less | ||
+ | </ | ||
+ | |||
+ | 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 : | ||
+ | < | ||
+ | locate icon | grep firefox | less | ||
+ | </ | ||
+ | Vous pouvez aussi sauvegarder le résultat de votre recherche dans un fichier créé à cet effet (nom choisi : liste.txt) : | ||
+ | < | ||
+ | locate .mp3 | tee liste.txt | ||
+ | # ou bien : | ||
+ | locate .mp3> | ||
+ | </ | ||
+ | |||
+ | ==== Sécurité ==== | ||
+ | La base de données est activée par défaut sur Ubuntu et n'est pas sécurisée. Ainsi, dans le cas d' | ||
+ | |||
+ | Comme la base de données est consultable par tous, un utilisateur peut avoir accès à l' | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ===== Recherches spécialisées ===== | ||
+ | |||
+ | ==== Rechercher des packages ==== | ||
+ | Il existe aussi, faisant double emploi aux deux outils cités plus haut, quelques outils propres aux paquets Debian pour qui la recherche de l' | ||
+ | *Utiliser la console pour lancer **dpkg** | ||
+ | < | ||
+ | dpkg -L fichier | ||
+ | </ | ||
+ | * 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, | ||
+ | *Les autres | ||
+ | Citons notamment le logiciel " | ||
+ | |||
+ | ===== Rechercher avec une interface graphique ===== | ||
+ | Comme vous l'avez compris, point d' | ||
+ | ===== Pages en relation avec le sujet ===== | ||
+ | |||
+ | {{topic> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // | ||