Home > Artigos > Truques e Dicas num Terminal Linux - Comandos Find e Locate

26-09-2023

Truques e Dicas num Terminal Linux - Comandos Find e Locate

Truques, Dicas num Terminal Linux - Comandos Find e Locate


Por vezes temos a necessidade de procurar determinados ficheiros na nossa máquina que sabemos que os temos, mas não nos lembramos do sítio onde se encontram. Através do comando find e do comando locate é possível encontrar estes ficheiros em todo o sistema operativo, mas existem diferenças importantes entre eles:


Mecanismo de pesquisa:

O comando find faz uma pesquisa em tempo real pelo sistema de ficheiros, percorrendo as diretorias e subdiretorias para encontrar os ficheiros que correspondem aos critérios de pesquisa especificados. Isto pode levar algum tempo, especialmente em sistemas de ficheiros grandes.

Por outro lado, o comando locate utiliza um género de base de dados pré-construída (geralmente atualizada por um cronjob) para realizar as pesquisas. O comando consulta a base de dados para encontrar os ficheiros que correspondem aos critérios de pesquisa. Como a base de dados já está construída, o locate é geralmente mais rápido que o find.

 

Atualização da base de dados:

O comando find não requer uma base de dados, deste modo, reflete todas as mudanças em tempo real no sistema de ficheiros. O comando pesquisa os ficheiros diretamente no sistema de ficheiros, o que pode ser mais lento, mas garante que os resultados estão sempre atualizados.

Por outro lado, o comando locate depende de uma base de dados que precisa de ser atualizada regularmente para refletir as alterações no sistema de ficheiros. Geralmente, a base de dados é atualizada por um cronjob em intervalos regulares. Isto torna o locate mais rápido para pesquisas subsequentes, mas pode não fornecer resultados imediatos após a criação ou modificação de um ficheiro.

 

Sintaxe e recursos:

A sintaxe e os recursos disponíveis nos comandos find e locate também podem diferir. O find oferece uma ampla gama de opções para personalizar a pesquisa com base em critérios como nome, tipo, tamanho, data de modificação, permissões, etc. O locate é geralmente mais simples, permitindo a pesquisa por nome de ficheiro ou parte dele.

 

Resumindo, os dois comandos têm as suas vantagens e desvantagens, podemos ter alguma preferência, mas se utilizarmos um deles e não obtivermos os resultados esperados não se perde nada em pesquisar com o outro.

Ao utilizarmos o find temos de ter em conta que realiza uma pesquisa em tempo real, é mais flexível e é atualizado instantaneamente, mas também pode ser mais lento.

Ao utilizarmos o locate este será certamente mais rápido, pois consulta uma base de dados já pré-construída, mas pode não estar imediatamente atualizada e os seus recursos de pesquisa são mais limitados.

 

Imaginemos que queríamos encontrar o ficheiro catalina.sh

 

Pelo comando locate seria algo como:

$ sudo locate catalina.sh

Esta instrução irá procurar o ficheiro catalina.sh na base de dados do locate e retornará todos os caminhos correspondentes encontrados. O resultado pode ser uma lista comprida, pois o locate não está limitado a uma diretoria específica.

Se quisermos limitar a pesquisa apenas à diretoria /(raíz), podemos utilizar uma instrução mais específica:

$ sudo locate /catalina.sh&nbsp<c/ode>;

Neste caso, o uso da / antes do nome do ficheiro especifica que desejamos localizar o ficheiro catalina.sh a partir da raiz do nosso sistema de ficheiros, nunca esquecendo que a base de dados do locate precisa ser sempre atualizada constantemente para refletir as alterações mais recentes. Por isso se o nosso ficheiro surgiu de algo instalado recentemente, é possível que o locate não encontre o ficheiro imediatamente. Neste caso, podemos utilizar um truque através de um comando que faz o update da base de dados do locate, ou seja, faríamos os dois comandos seguintes:

$ sudo updatedb
$ sudo locate /catalina.sh

 

Pelo comando find seria algo como:

$ sudo find / -name catalina.sh

 

Em qualquer um dos casos se quisermos limitar a pesquisa a uma diretoria em específico, basta substituir a "/" pelo caminho da diretória desejada.

Utilizou-se também o sudo antes dos comandos. Este comando permite-nos obter permissões de administrador, fazendo com que se possa também pesquisar em diretorias protegidos.

 

Ver mais artigos relacionados: aqui!

 

👉 Follow @niuGIS

RELACIONADAS


05-05-2023
ECMAScript

Contacte-nos 214 213 262

Informações