Estoy usando el locate
comando en Linux. Mi uso actual de él busca en todo el sistema de archivos. Solo quiero que busque dentro de un directorio específico. ¿Cómo puedo hacer esto?
16
Otro enfoque sería utilizar la coincidencia de patrones en locate
:
locate '/some/directory/*filename*'
Compare la salida de los comandos a continuación:
$ locate tmpfile
/usr/lib64/perl5/auto/POSIX/tmpfile.al
/usr/share/man/fr/man3/tmpfile.3.gz
/usr/share/man/ja/man3/tmpfile.3.gz
/usr/share/man/man3/tmpfile.3.gz
/usr/share/man/man3p/tmpfile.3p.gz
$
$ locate '/usr/lib64/*tmpfile*'
/usr/lib64/perl5/auto/POSIX/tmpfile.al
$
locate /usr/lib*tmpfile*
da el mismo resultado.
$ locate '/usr/lib64/*tmpfile'
no devolverá resultados.
locate
a través grep
.
Cree una base de datos de slocate para su directorio específico con:
updatedb -U /path/to/directory
y busca con:
locate <search_string>
ACTUALIZAR
Esto funciona bien en mi sistema Gentoo, pero CentOS no incluye la -U
opción. Entonces, puedes probar a continuación en su lugar:
Construya la base de datos con:
# updatedb -U /path/to/dir -o dir_locate.db
y busca:
# locate -d dir_locate.db <search_string>
updatedb: can not change group of file 'db.db.kHhzFz' to 'mlocate': Operation not permitted
verifique cómo usar el comando updatedb como usuario ordinario en Linux .
La respuesta más simple que se me ocurre es
locate search_term | grep "/specified/directory"
La mejor solución podría ser utilizar "buscar" y sus opciones de ruta ...
La forma más fácil es como en el siguiente ejemplo:
updatedb -o ~/tmp.db -l0 -U $PWD
locate -d ~/tmp.db "foo"
Cambie $PWD
a su directorio específico.
El ejemplo anterior creará su base de datos local solo para el directorio específico.
locate
búsquedas dentro de un directorio específico: unaalias my_locate="updatedb -U /path/to/yourdir -o /path/to/your_dir_locate.db; locate -d /path/to/dir_locate.db "
vez que el alias es efectivo, en el tipo de terminalmy_locate *foo*
y estás fuera de las carreras. Puede concatenar las actualizaciones de la base de datos y localizar la búsqueda utilizando el carácter de dos puntos para concatenar las bases de datos. rtfm: linux.die.net/man/8/updatedb