Encontre arquivos rapidamente no terminal com um comando locate alternativo
Um alias bem simples permite criar uma versão alternativa do comando locate
, para encontrar rapidamente arquivos e pastas a partir de trechos de seus nomes, aproveitando a base de dados do Spotlight.
Usuários que chegam ao Mac vindos de distribuições Linux frequentemente sentem a falta do comando locate
, integrante do pacote GNU Findutils que localiza rapidamente arquivos e pastas a partir de um trecho do nome – por exemplo, você digita locate tunes
e ele encontrará arquivos como:
/Users/augusto/Library/iTunes
/System/Library/PyObjC/Colloqui/iTunes Bot
Users/augusto/HandBrake/Arnaldo Antunes - Ao Vivo.mpeg
A diferença mais imediata entre o locate
e o seu primo find
é que o primeiro dá respostas quase instantâneas, porque não precisa pesquisar no disco: as pesquisas são feitas periodicamente pelo comando updatedb
, indexando o disco inteiro, e aí o locate
precisa apenas pesquisar nesse índice.
O locate
vem pré-instalado no seu Mac, mas usá-lo na configuração default gera um erro pela ausência do índice, porque o updatedb
nunca foi executado – a configuração que o executa periodicamente nas distribuições Linux não vem aplicada no OS X.
É possível configurar o updatedb
1 para rodar periodicamente no Mac, mas ocorre que o OS X já tem sua própria base de dados atualizada para pesquisa semi-instantânea, que você usa sem nem mesmo perceber, a cada vez que acessa o Spotlight2 e apps que tiram proveito dos recursos dele, como o Alfred.
Você pode usar a base de dados do Spotlight em pesquisas no Terminal, por meio do comando mdfind
– o manual do mdfind
tem os detalhes.
Para replicar a funcionalidade básica do locate com o mdfind, substitua o locate tunes
do meu exemplo anterior por mdfind -name tunes
.
E se você tem dificuldade pra lembrar de comandos novos, como eu, insira a linha a seguir no .bash_profile ou outro arquivo de inicialização do seu shell: alias locate='/usr/bin/mdfind -name'
, e com isso você passará, a partir da próxima vez que abrir o Terminal, a contar com um comando locate
que funcionará como um sinônimo do mdfind
.
Comentar
Comentários arquivados