Este tutorial irá guiá-lo pelas diferentes maneiras de encontrar um diretório no Linux. Como você já deve saber, no Linux tudo é um arquivo, incluindo diretórios. E uma das coisas comuns que um usuário do Linux fará na linha de comando é procurar por um arquivo ou diretório.
Existem vários meios e utilitários usados para procurar arquivos na linha de comando, como find, locate e which. No entanto, o último utilitário (which) é usado apenas para localizar um comando.
Para o escopo deste tutorial, vamos focar principalmente no utilitário find, que busca arquivos em um sistema de arquivos Linux em tempo real e é mais eficiente e confiável em comparação com locate.
A desvantagem do locate é que ele lê um ou mais bancos de dados criados por updatedb, não busca em um sistema de arquivos em tempo real. Além disso, ele não oferece flexibilidade quanto a onde procurar (ponto de partida).
Abaixo está a sintaxe para executar o comando locate:
# locate [option] [search-pattern]
Para demonstrar a desvantagem de localizar, vamos supor que estamos procurando por um diretório chamado pkg
no diretório de trabalho atual.
Observação: No comando abaixo, a opção --basename
ou -b
informa ao localizar para combinar apenas o nome do arquivo (diretório) (que é exatamente pkg) mas não o caminho (/caminho/para/pkg). Onde \
é um caractere de globulação, ele desativa a substituição implícita de pkg por *pkg*.
$ locate --basename '\pkg'

Como você pode ver na saída do comando acima, localizar irá pesquisar a partir do diretório raiz (/), por isso outros diretórios com o mesmo nome são encontrados.
Portanto, para lidar com esse problema, use encontrar seguindo a sintaxe simplificada abaixo:
$ find starting-point options [expression]
Vamos ver alguns exemplos.
Para procurar pelo mesmo diretório (pkg)
acima, dentro do diretório de trabalho atual, execute o seguinte comando, onde a bandeira -name
lê a expressão que neste caso é o nome do diretório.
$ find . -name "pkg"
Se você encontrar erros de “Permissão negada”, use o comando sudo assim:
$ sudo find . -name "pkg"

Você pode impedir que o find procure por outros tipos de arquivos exceto diretórios usando a bandeira -type
para especificar o tipo de arquivo (no comando abaixo d
significa diretório) da seguinte forma:
$ sudo find . -type d -name "pkg"
Além disso, se desejar listar o diretório em um formato de listagem longa, utilize o switch de ação -ls
:
$ sudo find . -type d -name "pkg" -ls

Em seguida, a opção -iname
permitirá uma busca insensível a maiúsculas e minúsculas:
$ sudo find . -type d -iname "pkg" $ sudo find . -type d -iname "PKG"

Para encontrar informações de uso mais interessantes e avançadas, leia as páginas do manual de find e locate.
$ man find $ man locate
Como última observação, o comando find é mais confiável e eficiente para buscar arquivos (ou diretórios) em um sistema Linux quando comparado com o comando locate.
Da mesma forma que antes, não se esqueça de nos enviar seu feedback ou perguntas através da seção de comentários abaixo. Por fim, mantenha-se sempre conectado ao Tecmint.