Como uso o comando locate em um diretório especificado?

15

Estou usando o comando locate no Linux. Meu uso atual dele pesquisa todo o sistema de arquivos. Eu só quero que ele pesquise em um diretório específico. Como posso fazer isso?

    
por telnet 21.09.2011 / 04:18

4 respostas

10

Outra abordagem seria usar a correspondência de padrões em locate :

locate '/some/directory/*filename*'

Compare a saída dos comandos abaixo:

$ 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* fornece o mesmo resultado.

    
por 21.09.2011 / 06:02
5

Crie um banco de dados slocate para seu diretório específico com:

updatedb -U /path/to/directory

e pesquise com:

locate <search_string>

UPDATE

Isso funciona bem no meu sistema Gentoo, mas o CentOS não inclui a opção -U . Então, você pode tentar abaixo:

Construa o banco de dados com:

# updatedb -U /path/to/dir -o dir_locate.db

e pesquisa:

# locate -d dir_locate.db <search_string>
    
por 21.09.2011 / 04:28
2

A resposta mais simples que consigo pensar é

locate search_term | grep "/specified/directory"

A melhor solução pode ser usar "localizar" e suas opções de caminho ...

    
por 21.09.2011 / 04:23
0

A maneira mais fácil é como no exemplo a seguir:

updatedb -o ~/tmp.db -l0 -U $PWD
locate   -d ~/tmp.db "foo"

Altere $PWD para o seu diretório específico.

O exemplo acima criará seu banco de dados local apenas para o diretório específico.

    
por 18.10.2014 / 20:07

Tags