Recherche floue de fichiers dans la ligne de commande Linux


  • Français


  • Comment trouvez-vous des fichiers dans la ligne de commande Linux ? Vous utilisez la commande de recherche. C’est la réponse standard et il n’y a rien de mal à cela.

    Habituellement, vous tapez la commande avec vos paramètres de recherche, appuyez sur Entrée et elle affiche les résultats.

    Vous pouvez améliorer votre expérience de recherche de fichiers dans le terminal grâce à la recherche floue.

    La recherche floue est un algorithme ou une technique de recherche approximative. Ici, les fichiers d’un emplacement spécifié sont recherchés par nom et l’utilisateur obtiendra des résultats en temps réel.

    La recherche floue est populaire dans les moteurs de recherche Web, où un utilisateur commence à saisir le terme et commence à afficher les résultats liés au terme.

    Dans cet article, je vais discuter de deux outils CLI qui vous permettent d’effectuer des recherches floues sous Linux :

    • Fzf : Chercheur flou
    • Fzy : Sélecteur flou

    Fzf, le Fuzzy Finder sous Linux

    Fzf est un outil de recherche floue disponible pour Linux, où vous pouvez rechercher des fichiers de manière interactive.

    À installer fzf dans Ubuntu, ouvrez un terminal et exécutez :

    sudo apt install fzf

    Alors que fzf lui-même fonctionne correctement, il est sage de l’utiliser en conjonction avec d’autres outils pour en tirer le meilleur parti.

    Utilisation de fzf

    Ouvrez un terminal et lancez :

    fzf

    Cela ouvrira une invite de fzf où vous pouvez rechercher des fichiers dans le répertoire de travail actuel.

    Exécution de la commande fzf dans le terminal
    Défaut fzf

    Appliquer une bordure à fzf

    Vous pouvez utiliser le --border option de fzf. Il existe plusieurs options comme arrondi, pointu, etc.

    fzf --border=rounded
    Exécution de la commande fzf avec l'option de bordure définie sur arrondie et nette
    fzf avec bordure

    Appliquer la couleur d’arrière-plan et de premier plan

    À l’aide de la propriété color, vous pouvez définir les couleurs ANSI sur fzf en arrière-plan, en avant-plan ou les deux.

    Sortie colorée pour fzf, où les couleurs sont spécifiées par l'utilisateur
    fzf coloré
    fzf --color="bg:black,fg:yellow" 

    Vous pouvez concaténer les options pour faire fzf visuellement agréable.

    Maintenant, permettez-moi de montrer une utilisation pratique de la recherche floue avec fzf.

    Utilisez fzf pour rechercher dans l’historique de bash

    Bien sûr, il y a une recherche inversée CTRL + R dans l’historique bash. Mais si vous voulez utiliser fzf pour mieux voir, exécutez:

    history | fzf
    Utilisation de la recherche floue fzf pour rechercher dans l'historique bash
    Utiliser fzf pour rechercher dans l’historique de bash

    Utiliser fzf avec la commande tree

    La commande Tree répertorie les fichiers et les répertoires avec leur connexion hiérarchique.

    En utilisant fzf avec tree La commande peut vous aider à trouver le chemin absolu d’un fichier particulier.

    tree -afR /home/$USER | fzf
    Exécution de la commande Tree et canalisation de la sortie vers la recherche floue
    Arborescence et commande FZF

    💡

    La commande ci-dessus invoquera tree et lister tous les fichiers (-a) y compris ceux cachés de manière récursive (-R). Également -f L’option indique à l’arbre de lister le chemin complet.

    Prévisualiser les fichiers dans fzf

    Parfois, il sera utile d’obtenir un petit aperçu du fichier que vous recherchez.

    Heureusement, fzf fournit une option de prévisualisation. Vous pouvez y accéder en utilisant --preview. je suis ici en utilisant findcommande pour le rendre encore plus utile.

    find /home/$USER -type f | fzf --preview 'less {}'

    Ici, pendant que vous faites défiler le résultat, il affichera les fichiers texte en utilisant moins.

    🚧

    Si vous utilisez d’autres commandes comme lsetc. n’utilisez pas d’options telles que -l, qui affichera des détails supplémentaires (autorisations de fichiers). Ces détails supplémentaires briseront le format requis pour fzf Aperçu. le hile en utilisant la fonction de prévisualisation, l’entrée à fzf ne doit être que le nom du fichier.

    Si tu as bat installé, vous pouvez également l’utiliser pour prévisualiser les fichiers.

    find /home/$USER -type f | fzf --preview 'bat --color always {}'
    Utilisation de bat comme visualiseur de texte pour la fonction de prévisualisation FZF
    Aperçu du fichier FZF à l’aide de l’éditeur de chauve-souris

    Pour les utilisateurs d’Ubuntu, bat est disponible en tant que batcat. Alors lancez :

    find /home/$USER -type f | fzf --preview 'batcat --color always {}'

    💡

    Créer un alias pour ces commandes, afin que vous ne vouliez pas les taper encore et encore.

    Utilisez fzf pour cd dans n’importe quel répertoire de n’importe où (avancé)

    C’est un peu plus délicat que le précédent. Ici, vous ne pouvez pas directement diriger fzf et cd ensemble, car les deux sont des processus différents.

    Vous pouvez créer un alias en utilisant la commande comme :

    cd $(find /home/$USER -type d | fzf)

    Ou, vous pouvez suivre la méthode expliquée ci-dessous.

    Pour ce faire, vous devrez peut-être ajouter une fonction à votre bashrc. Permettez-moi d’appeler cette fonction comme finder. Ajoutez maintenant les lignes suivantes à votre fichier bashrc.

    finder() {
      local dir
      dir=$(find required/location/to/search/and/enter -type d | fzf)
      if [[ -n "$dir" ]]; then
        cd "$dir" || return
      fi
    }

    Maintenant, vous devez entrer l’emplacement où se trouvent les répertoires que vous souhaitez rechercher et entrer.

    Par exemple, j’ai remplacé cette partie par /home/$USER pour indiquer que je dois cd dans tous les répertoires de ma maison de n’importe où.

    Une fois que vous avez enregistré votre bashrc, redémarrez le terminal ou exécutez :

    source ~/.bashrc

    Après cela, vous pouvez exécuter le Finder à partir du terminal et une fois que vous avez localisé le répertoire dans lequel vous souhaitez entrer, appuyez sur la touche Entrée.

    Utilisez la commande fzf pour entrer dans n'importe quel répertoire à l'aide de la commande cd

    Copiez la sélection dans le Presse-papiers

    Jusqu’à présent, vous avez vu utiliser fzf et dans tous les cas, il donne soit un résultat de recherche, soit un aperçu.

    Désormais, si vous souhaitez copier l’emplacement d’un élément, vous n’avez pas nécessairement besoin de le faire manuellement. Il existe une solution pour cela aussi.

    Tout d’abord, assurez-vous que Xclip est installé.

    sudo apt install xclip

    Maintenant dirigez-le vers xclip comme ceci :

    fzf | xclip -selection clipboard

    Cela copiera toutes les lignes sur lesquelles vous avez appuyé sur la touche Entrée dans votre presse-papiers.

    Autres utilisations

    Comme je l’ai dit plus tôt, vous pouvez utiliser n’importe quelle commande impliquant une quantité importante de texte et vous souhaitez rechercher une chose particulière de manière interactive.

    • cat ~/.bashrc | fzf – Rechercher dans Bashrc
    • lsblk | fzf – Recherche dans la liste des dispositifs de verrouillage
    • ps -aux | fzf – Rechercher dans la liste des processus

    Autre choix : Fzy, le Fuzzy Selector

    Contrairement à fzf, fzy est un sélecteur flou, où vous sera fourni un menu à sélectionner, en fonction de l’entrée.

    Par exemple, si vous utilisez fzy en collaboration avec ls commande, il vous donnera un menu comme une interface.

    Commande FZY avec ls
    fzy commande

    Par défaut, il vous montrera dix entrées en vue.

    Entrez dans un répertoire en utilisant fzy

    Semblable à fzf, fzy peut également être utilisé pour entrer dans un répertoire du répertoire de travail actuel en utilisant :

    cd $(find -type d | fzy)

    Ouvrir un fichier à l’aide de n’importe quel éditeur

    Ou ouvrez un fichier à l’aide de votre éditeur préféré en :

    nano $(find -type f | fzy)

    Bonus : un aperçu personnalisé du fichier et de l’image

    La commande ci-dessous ouvrira une invite personnalisée dédiée dans Ubuntu pour la recherche floue, où vous pouvez prévisualiser les fichiers texte en les faisant défiler.

    find /home/$USER -type f | fzf --color="bg:black,fg:yellow" --preview 'batcat --color always {}' --preview-window=bottom

    Créez un alias pour cela dans votre bashrc pour un accès facile.

    Ou prévisualisez une image en fzf pendant le défilement en utilisant timg visionneuse d’images en ligne de commande. Installez-le en utilisant :

    sudo apt install timg

    🚧

    N’oubliez pas que la visionneuse d’images n’affichera pas une image appropriée, car ce n’est pas le but principal de l’aperçu fzf

    fzf --preview 'timg -g 200x100 {}' --preview-window=right:90

    Pour ceux qui sont bricoleurs, essayez de réaliser cette partie en affinant.

    Alternatives modernes au sauvetage

    La plupart des commandes Linux ont été héritées de l’ère UNIX. Ils sont vieux mais fonctionnent comme prévu. Mais cela ne signifie pas qu’ils ne peuvent pas être améliorés.

    Je veux dire, vous n’avez pas besoin de réinventer la roue, mais vous pouvez toujours travailler à l’amélioration des roues.

    Des outils modernes comme fzf et fzy font passer la recherche de fichiers dans le terminal Linux au niveau supérieur. Voici quelques autres outils de ligne de commande de ce type qui pourraient vous intéresser.

    Alternatives modernes à certaines des commandes Linux classiques

    Considérez-vous un utilisateur Linux moderne ? Avez-vous déjà essayé ces remplacements modernes des commandes Linux classiques ?

    J’ai essayé de donner quelques exemples pratiques pour ces outils de recherche floue. J’espère que vous les trouverez suffisamment inspirants pour vous. Faites-moi savoir dans les commentaires si vous comptez les utiliser.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code