Este tutorial o guiará pelas diferentes maneiras de encontrar um diretório no Linux. Como você já deve saber, em Linux tudo é um arquivo, incluindo diretórios. E uma das coisas comuns que um usuário do Linux fará na linha de comando é pesquisar por um arquivo ou um diretório.
Existem vários meios e utilitários usados para pesquisar 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, focaremos principalmente no utilitário find, que pesquisa 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 pesquisa em um sistema de arquivos em tempo real. Além disso, ele também não oferece flexibilidade em relação a onde pesquisar (ponto de partida).
A seguir 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.
Nota: No comando abaixo, a opção --basename
ou -b
diz ao localizar para apenas corresponder ao nome do arquivo (diretório) (que é exatamente pkg) e não ao caminho (/caminho/para/pkg). Onde \
é um caractere de globo, 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á procurar a partir do diretório raiz (/), é por isso que outros diretórios com o mesmo nome são correspondidos.
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 flag -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 o find de pesquisar por outros tipos de arquivos exceto diretórios usando a flag -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 deseja listar o diretório em um formato de listagem longa, utilize o comando -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 mais informações de uso interessantes e avançadas, leia as páginas de manual do find e do locate.
$ man find $ man locate
Como última observação, o comando find é mais confiável e eficiente para pesquisar 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.