Existe-t-il un moteur de recherche de fichiers du type «Tout» sous Linux?

46

Sous Windows, il existe un moteur de recherche de fichiers appelé Everything , qui est ( findtrès différent ) très rapide et locaterenvoie toujours des résultats actualisés. Autant que je sache, cela fonctionne en remplissant une base de données à partir du journal NTFS (cela ne fonctionne pas avec d'autres systèmes de fichiers).

Je me demande s’il ya quelque chose de similaire (je me moque de l’interface graphique; ce que je veux dire, c’est la rapidité et la garantie actualisée) pour Linux (ext3 ou ext4); J'ai googlé mais rien trouvé. Peut-on faire quelque chose comme cela ou même quelqu'un y travaille-t-il?

maaartinus
la source
2
Ce qui me plaît chez Everything, c’est qu’il est non seulement instantané, mais qu'il fonctionne également pour plusieurs partitions, comme les systèmes à démarrage multiple dotés de six installations Windows et de plusieurs partitions de données. J'aimerais que la recherche Linux fonctionne sur plusieurs partitions Linux, pas seulement sur une seule partition.
Arch Parsons
Il existe de nombreuses variantes de localisation (mlocate, slocate, rlocate, ....) avec leurs caractéristiques propres (incrémental updatedb, indexation en temps réel ou sécurisé, ...). Tous sont hautement configurables (pages de manuel de updatedb.conf et localiser)
Manu H

Réponses:

30

Vous pouvez jeter un coup d'œil à rlocate , une réimplémentation de localisation toujours à jour. Recoll est un autre projet intéressant, qui prend également en charge l’indexation en temps réel et vous permet (comme beagle) de faire des recherches en texte intégral. Enfin, il convient de mentionner doodle, qui prend également en charge l’indexation en temps réel. Pour doodle, il y a de belles interfaces comme le poisson-chat .

Notez que vous pouvez également rendre (r) localisable les résultats cliquables en utilisant par exemple urxvt comme émulateur de terminal et en écrivant quelque chose comme:

URxvt.perl-ext: default,matcher URxvt.urlLauncher: /usr/bin/gnome-open     
URxvt.matcher.button: 1 URxvt.matcher.pattern.1: /.*

(et exécution xrdb -load ~/.Xdefaultsaprès)

étudiant
la source
1
Je pense que cette réponse devrait être acceptée. rlocatelui-même fait déjà une réponse complète.
Phunehehe
4
Quoi de neuf en 2017? rlocate mentionne Linux 2.6 et aucun paquet Ubuntu 16.04. rappel semble intéressant et mis à jour, même si exagéré pour mon besoin. doodle a un paquet Ubuntu à partir de 16.04, ce pourrait donc être une option.
Stéphane Gourichon
Pourquoi récoll est-il une surcharge, vous pouvez également exécuter récoll depuis la ligne de commande Il s'intègre également bien avec kde et l'unité si vous voulez.
étudiant
Mon plus gros problème avec le poisson-chat est l'incapacité d'interagir avec les fichiers - si je veux copier 20 fichiers à partir des résultats de la recherche, j'ai besoin de Show in File Manager20 fois.
Annan
La documentation de rlocate contient une liste d'exigences de "configuration du noyau" que je ne sais pas comment répondre. Si je la décompresse et que ./configureje l' exécute, on me dit que je dois "installer le paquet avec les sources du noyau complet". Cet outil semble être hors de portée des non-gourous.
Qwertie
7

Je recherchais également l'outil "Rechercher tout" pour Linux et découvrais "Rechercher un singe" dans le référentiel Ubuntu. AIMER!

Il est léger, charge rapidement, les recherches génériques produisent des tonnes de résultats instantanément, en plus de filtres et de méthodes de recherche avancées.

J'ai maintenant mon outil de recherche "Tout" pour Linux!

Charles
la source
Le lien est cassé
Chris Nevill
4

Idée intéressante pour l'implémenter enracinée dans le système de fichiers, mais rien de tel n'existe à ma connaissance. Mis à part quelques ajouts qui tentent de s’enfouir suffisamment dans les couches supérieures de la fs pour récupérer rapidement les données (Mise à jour: tout tombe dans cette catégorie elle-même), je crains que vous ne soyez limité aux processus moins satisfaisants de indexation régulière.

Ce qui pourrait se rapprocher de ce que vous recherchez pourrait être le système de fichiers virtuel libferris.

Dans le monde de l'indexation, vous pouvez jeter un coup d'œil à aperçu , qui est au moins capable de mettre à jour et d'ajouter son index.

Mise à jour: je viens de lire les articles sur "Tout", et cela ne semble pas non plus être inhérent au système de fichiers, de sorte que libferris n'est pas si loin, mais il permet également d'indexer le contenu, pas seulement les noms de fichiers. Cela répond à votre besoin d'être à jour en tout temps.

Tatjana Heuser
la source
La liste de diffusion de Ferris s'est asséchée depuis 2007 et ne se poursuit pas au-delà de 2010. Un référentiel github n'était pas actif entre mi-2016 et mars 2017 github.com/monkeyiq/ferris/commits/master . Peut-être que ça continue.
Stéphane Gourichon
2

Vous pouvez utiliser la locatecommande et si vous souhaitez mettre à jour sa base de données, exécutez la commande suivante:

# updatedb

Cette commande met à jour la base de données de localisation en quelques secondes

RobotMan
la source
Exemple d'
phil294
2

Avez-vous vérifié la recherche en colère . Il prétend dans sa description que c'est comme tout. FSearch prétend également la même chose.

Blue Ray
la source
1
Compte tenu du nombre de résultats de recherche pointant vers FSearch lorsque vous recherchez une alternative Evernote pour Linux sur Google, je suis surpris que vous soyez le seul à l'avoir publiée ici.
Ghos3t
1

Il devrait être possible de construire quelque chose comme ceci dans quelques lignes de code en utilisant inotify (il y a aussi le paquet inotify-tools qui vous permettrait de l'implémenter en utilisant des scripts shell).

(Je serais très surpris qu'un tel outil soit piloté par le journal - plus probablement, il est implémenté dans le niveau système de fichiers virtuel)

symcbean
la source
1
Je ne sais pas si cela inotifypourrait être utile ici car ce n'est pas récursif. Créer des montres pour l’ensemble de l’arbre est simple, mais le noyau peut-il en gérer plusieurs dizaines de milliers? Même si cela est possible, cela ne me semble pas être un moyen efficace.
Maaartinus
1

btrfsa mis en œuvre la find-newcommande contre les sous-volumes pendant des années. Si vous conservez une arborescence d'instantanés relativement à jour, vous pouvez l'utiliser pour surveiller de manière atomique un système de fichiers pour toutes les modifications en toute simplicité.

Vous l'utiliseriez comme:

btrfs sub find-new /chk/path [gen-id]

Vous pouvez obtenir le gen-id dont vous avez besoin pour la comparaison avec la même commande, mais en utilisant un faux gen-id. Il y a plus d'informations ici .

Mikeserv
la source
1

Interface utilisateur frontale pour la commande de localisation qui fonctionne presque comme tout:

https://github.com/AlexTuduran/Locator/releases

Alex Tuduran
la source
1
Cela semble être construit sur la fausse prémisse qui locaten'est jamais mise à jour automatiquement.
Roaima
S'il vous plaît développer. Qu'entendez-vous par localiser en cours de mise à jour?
Alex Tuduran
Votre projet GitHub indique que la commande Unix locateutilise le même principe, sauf que la base de données n'est pas mise à jour automatiquement . Le locatepackage comprend une crontâche qui met automatiquement à jour la base de données.
Roaima
Si cela est vrai, alors cela ne fait qu'aider le but de l'outil. La mise à jour automatique de la base de données décharge l'utilisateur de toute autre tâche. L'utilisateur peut toujours mettre à jour la base de données explicitement s'il a besoin de mises à jour immédiates. Ou quelle est la préoccupation ici concernant la fausse prémisse?
Alex Tuduran
1

J'utilise Angry Search sur un Raspberry Pi 3 B + sous Stretch et cela fonctionne bien. Il est vraiment très rapide, tout comme Tout rechercher dans Windows. C'est très agréable de pouvoir trouver des fichiers aussi rapidement.

lulu
la source