Me pregunto si hay una manera de aumentar la find
velocidad en la terminal, no tiene sentido que el uso de internet google para buscar tenga una mejor velocidad que hacer una búsqueda local de cadenas o simplemente nombres de archivos.
Me pregunto si hay una manera de tener una base de indexación local, una vez construida, en el futuro, el comando find podría ser súper rápido.
¿O alguna otra sugerencia?
¡Gracias!
Respuestas:
Intenta usarlo
locate
, debe hacer lo que quieras.fuente
locate
proviene (generalmenteslocate
), y usarupdatedb
para reconstruir la base de datos. :-)Depende mucho de cuál sea su criterio de búsqueda.
Si busca nombres de archivo o patrones de nombre de archivo, localizar es mucho más rápido, pero no es adecuado para archivos recién generados, ya que el índice utilizado normalmente se actualiza solo una vez al día. Pero si puedes usarlo, es súper rápido.
Pero con find puede buscar el tamaño del archivo, la antigüedad del archivo y otras cosas, que no se pueden buscar por localizar.
Si sabe dónde buscar, puede usar la ruta para delimitar el alcance de búsqueda:
solo buscaría archivos de 2 a 10 M, máximo 1 año de antigüedad en / some / path.
Se pueden buscar programas, disponibles en la ruta, mediante los cuales, ayuda, lib y archivos de configuración con whereis. Ejemplos:
fuente
Utilizar
locate
¡La razón es que
locate
utiliza una base de datos de todos los directorios y archivos existentes que ya se han creado tal como lo imaginó!http://linux.about.com/od/commands/l/blcmdl5_locatedb.htm
En un intervalo establecido (y variable), un trabajo que se ejecuta escanea el sistema de archivos y luego crea una base de datos con él. Es entonces esta base de datos (ubicada b), con sus índices apropiados
locate
contra los que va el comando en lugar de escanear a través de su disco duro en ese punto.Entonces, lo bueno es que es muy rápido en comparación con un escaneo de disco duro. La desventaja es que la base de datos de localización (ubicada b) no está 'en vivo', por lo que solo se puede usar para archivos que existían 'a partir del' último escaneo.
Para actualizar ubicaciónb ahora ejecute
updatedb
(osudo updatedb
si es necesario)Por cierto, acabo de ejecutar
sudo updatedb
localmente y me tomó 3 1/2 segundos. Tengo 31,000 archivos.fuente
Como otros han señalado, localizar puede ser una mejor herramienta para un buscador más simple.
Sin embargo, para búsquedas más complejas, probablemente esté atascado con find.
Una forma de acelerar la búsqueda es reducir en qué directorio están sus archivos en lugar de buscar en todo el directorio raíz.
fuente
para una sola operación de búsqueda; No encontré ninguna aceleración; a menos que intente limitar la búsqueda utilizando las
find
opciones.Sin embargo; si desea realizar varias
find
operaciones en el mismo conjunto de archivos ; Obtuve una aceleración significativa al llenar un archivo temporal con todos los nombres de archivo y usarlosgrep
. Por supuesto, esto no tiene en cuenta los archivos que se agregan o eliminan.fuente