Buscar un archivo en el sistema Unix.

Buscar un archivo en el sistema Unix.

Estoy intentando encontrar un archivo usando los comandos buscar y localizar.

locateEl comando es más rápido pero requiere actualizar la slocatebase de datos. Y findel comando es más lento pero no requerirá ninguna actualización.

Estoy intentando utilizar una especie de prdsistemas.

¿Alguien podría sugerir un comando que sea más rápido y pueda usarse con usuarios de nivel inicial para mi script de shell, por favor?

Respuesta1

Teniendo en cuenta que los archivos están en algunos subdirectorios anidados a no más de dos o tres de profundidad, puede usar un comando (posiblemente) más rápido como

(cd /path/to/directory; ls *.txt */*.txt */*/*.txt)

Como de alguna manera lograste responder tu propia pregunta, usa updatedbpero conacelerar la localización, como:

$ updatedb -o /home/rahul/my.db -U /home/rahul/ -e "not/in/this/directory1 not/in/this/directory2"
$ locate -d /home/rahul/my.db            ### point locate to use your db

verhombre actualizadopara obtener ayuda al respecto.


Según la sugerencia de @cas, alternativamente, redirija la salida finda un archivo y ejecútelo greprepetidamente. El texto sin formato ocupa más espacio que una updatedbbase de datos, pero su búsqueda es mucho más rápida.

Por ejemplo:

find /path/to/directory > /tmp/files.list
grep -i file.xml /tmp/files.list
grep -i anotherfile.xml /tmp/files.list

información relacionada