¿Hay un motor de búsqueda de archivos como "Everything" en Linux?


46

En Windows hay un buen motor de búsqueda de archivos llamado Everything , que es (a diferencia find) muy rápido y (a diferencia locate) siempre devuelve resultados actualizados. AFAIK funciona al llenar una base de datos del diario NTFS (no funciona con otros sistemas de archivos).

Me pregunto si hay algo similar (no me importa la GUI; mi punto es la velocidad y la garantía actualizada) para Linux (ext3 o ext4); Busqué en Google pero no encontré nada. ¿Se puede hacer algo como esto o incluso alguien está trabajando en ello?


2
Lo que me gusta de Everything es que no solo es instantáneo, sino que también funciona para múltiples particiones, como sistemas de arranque múltiple con seis instalaciones de Windows más varias particiones de datos. Me gustaría tener una búsqueda de Linux que funcione en múltiples particiones de Linux, no solo en la única partición.
Arch Parsons

Existen muchas variantes de ubicación (mlocate, slocate, rlocate, ....) con sus propias características (actualización incrementalb, indexación segura o en tiempo real, ...). Todos son altamente configurables (páginas de manual de updatedb.conf y localizar)
Manu H

Respuestas:


30

Puede echar un vistazo a rlocate , una reimplementación de ubicación que siempre está actualizada. Otro proyecto interesante es el recoll, que también admite la indexación en tiempo real y le permite (como beagle) realizar búsquedas de texto completo. Finalmente, debo mencionar doodle que también admite indexación en tiempo real. Para el garabato, hay algunas interfaces agradables como el bagre .

Tenga en cuenta que también puede hacer que (r) busque resultados en los que se puede hacer clic usando, por ejemplo, urxvt como terminal-emulador y escribiendo algo como

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

(y ejecutar xrdb -load ~/.Xdefaultsdespués)


1
Creo que esta respuesta debería ser aceptada. rlocateya hace una respuesta completa.
phunehehe

44
¿Qué pasa en 2017? rlocate menciona Linux 2.6 y ningún paquete Ubuntu 16.04. Recoll parece interesante y actualizado, aunque excesivo para mi necesidad. doodle tiene el paquete Ubuntu a partir de 16.04, por lo que podría ser una opción.
Stéphane Gourichon

¿Por qué recoll un overkill? También se integra bien con kde y la unidad si lo desea.
estudiante

Mi mayor problema con el bagre es la incapacidad de interactuar con los archivos; si quiero copiar 20 archivos de los resultados de búsqueda, necesito Show in File Manager20 veces.
Annan

La documentación de rlocate tiene una lista de requisitos de "configuración del kernel" que no sé cómo cumplir, y si la descomprimo y ejecuto ./configureme dicen que debo "instalar el paquete con las fuentes completas del kernel". Esta herramienta parece estar fuera del alcance de los no gurús.
Qwertie

7

También estaba buscando la herramienta "Buscar todo" para Linux y descubrí "Buscar mono" en el repositorio de Ubuntu. ¡QUIÉRALO!

Es liviano, se carga rápidamente, las búsquedas con comodines producen toneladas de resultados al instante, además tiene filtros y métodos de búsqueda avanzados.

¡Ahora tengo mi herramienta de búsqueda "Todo" para Linux!


El enlace está roto
Chris Nevill

4

Una idea interesante para implementar esto enraizado en el sistema de archivos, pero nada de eso existe a mi entender. Además de algunos complementos que intentan excavar lo suficientemente profundo en las capas superiores de fs para obtener una retención temprana de los datos (Actualización: todo cae dentro de esta categoría), me temo que estás limitado a los procesos menos satisfactorios de indexación regular.

Lo que podría estar más cerca de lo que está buscando podría ser el sistema de archivos virtual libferris.

En el mundo de la indexación, es posible que desee echar un vistazo , que al menos puede actualizar y agregar su índice.

Actualización: Acabo de leer las cosas sobre "Todo", y tampoco parece ser inherente al FS, por lo que libferris no está tan lejos, además también permite indexar contenido, no solo nombres de archivos. Satisface su necesidad de estar actualizado en todo momento.


La lista de correo de Ferris se secó desde 2007 y no continúa más allá de 2010. Hay un repositorio de github que no estuvo activo entre mi-2016 y marzo de 2017 github.com/monkeyiq/ferris/commits/master . Quizás continúe.
Stéphane Gourichon


2

¿Has comprobado Angry Search ? Afirma en su descripción que es como todo. FSearch también afirma lo mismo.


1
Teniendo en cuenta cuántos resultados de búsqueda obtienes apuntando a FSearch cuando buscas en Google la alternativa de Evernote para Linux, me sorprende que seas el único que lo publicó aquí.
Ghos3t

1

Debería ser posible construir algo como esto en unas pocas líneas de código usando inotify (también está el paquete inotify-tools que le permitiría implementar esto usando scripts de shell).

(Me sorprendería mucho que cualquier herramienta de este tipo sea impulsada desde el diario, lo más probable es que se implemente en el nivel del sistema de archivos virtual)


1
No estoy seguro si inotifypodría ser útil aquí, ya que no es recursivo. Crear relojes para todo el árbol es simple, pero ¿puede el núcleo manejar muchas decenas de miles de ellos? Incluso si puede, esto no me parece una forma efectiva.
maaartinus


1

btrfsha implementado el find-newcomando contra subvolúmenes durante años. Si mantiene un árbol de instantáneas relativamente actualizado, se puede usar para ver atómicamente un sistema de archivos para todos los cambios con poco alboroto.

Lo usarías como:

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

Puede obtener el gen-id que necesita para compararlo con el mismo comando, pero utilizando un gen-id falso. Hay más información aquí .


1

Interfaz de usuario de la interfaz de usuario para el comando de localización que funciona casi igual que Everything:

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


1
Esto parece estar construido sobre la premisa falsa que locatenunca se actualiza automáticamente.
roaima

Por favor desarrolla. ¿Qué quiere decir con localizar que se actualiza?
Alex Tuduran

Su proyecto GitHub indica que el comando Unix locateusa el mismo principio, excepto que la base de datos no se actualiza automáticamente . El locatepaquete incluye una crontarea que actualiza automáticamente la base de datos.
roaima

Si eso es cierto, entonces solo está ayudando al objetivo de la herramienta. Tener la base de datos actualizada automáticamente descarga al usuario de realizar otra tarea. El usuario aún puede actualizar la base de datos explícitamente si necesita actualizaciones inmediatas. ¿O cuál es la preocupación aquí con respecto a la premisa falsa?
Alex Tuduran

1

Estoy usando Angry Search en un Raspberry Pi 3 B + con Stretch y funciona bien. Es realmente bastante rápido al igual que Buscar todo en Windows. Es muy agradable poder encontrar archivos tan rápido.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.