Já temos 3 posts sobre o comando locate
- Linha de Comando em Linux: locate e updatedb – parte 01
- Linha de Comando em Linux: locate e updatedb – parte 02
- Linha de Comando em Linux: locate e updatedb – parte 03
Hoje iremos ver uma dica: Como pesquisar dentro de uma pasta somente usando locate.
Sabemos que o comando locate faz suas buscas dentro do seu banco de dados. Ele não está limitado à somente um diretório/pasta e sim ao seu banco. Mas podemos contornar essa situação.
Usando Somente o Comando Locate
Para isso basta colocarmos o caminho da pasta onde queremos pesquisar à frente do comando locate, da seguinte forma:
Irei pesquisar livros do autor patrick Rothfuss dentro da pasta “/home/elder/work/Documentos_temp/”
elder@ubuntu:~$ sudo locate -i /home/elder/work/*patrick\ roth*
a opção “-i” acima para que a procura não faça distinção entre maiúscula e minúscula, ou seja, não use “case sensitive”.
Quando houver espaço em brando entre uma palavra e outra, como no caso acima em “Patrick Rothfuss”, devemos colocar a barra “\” para fazermos o espaço ter seu sentido entendido. Na verdade, usamos o termo escapar quando usando a barra “\” para definir sentido diferente.
veja o resultado da pesquisa
/home/elder/work/Documentos_temp/IRC bookz 2012-08/2012/2012-08-30/Patrick Rothfuss - [Kingkiller Chronicle 01] - The Name of the Wind (retail) (epub).epub /home/elder/work/Documentos_temp/IRC bookz 2012-08/2012/2012-08-30/Patrick Rothfuss - [Kingkiller Chronicle 01] - The Name of the Wind (retail) (mobi).mobi /home/elder/work/Documentos_temp/IRC bookz 2012-10/2012/2012-10-22/Patrick Rothfuss - [Kingkiller Chronicle 01] - The Name of the Wind (US) (retail) (mobi).mobi
Usando grep
Podemos também usar “grep” para filtrarmos apenas as linhas que contenha “home/elder/work” .
Como em:
elder@ti:~$ sudo locate -i '*patrick roth*' | grep "home/elder/work"