Linux / Comandos / which, whereis, locate / Encontrando Localizações de Comandos
No Linux, which é usado principalmente para encontrar arquivos executáveis em PATH, whereis encontra arquivos relacionados, como executáveis e manuais, em locais predeterminados. locate pesquisa em um banco de dados de nomes de arquivos pré-criado, então também pode encontrar rapidamente arquivos comuns, mas os resultados podem diferir do estado atual.
Qual comando deve ser usado?
- Caminho do Arquivo Executável: Verifique com
which findou com ocommand -v finddo shell para ver quais comandos podem ser encontrados no ambiente atual. - Arquivos Executáveis e Manuais: Use
whereis findpara verificar se programas e manuais/fontes relacionados estão em locais conhecidos. - Pesquisar por nome de arquivo:
locatepesquisa em caminhos indexados e, se você precisar da informação mais atualizada, pode usarfindpara pesquisar diretamente em um diretório especificado.
O escopo da pesquisa e os resultados variam dependendo da distribuição, dos programas instalados, das permissões do usuário e das configurações. Os caminhos de saída abaixo são exemplos para fins de explicação e podem não ser os mesmos em todos os sistemas.
Verifique executáveis com which e command -v
PATH é uma variável de ambiente que contém uma lista de diretórios para procurar ao tentar executar um comando. O seguinte comando encontra o caminho de um executável chamado find.
which find
Por exemplo, /usr/bin/find pode ser exibido. Se nenhum caminho for exibido, verifique se o programa está instalado e confirme PATH. No entanto, a implementação de which e o manuseio de aliases difere de sistema para sistema, por isso também é uma boa ideia verificar os comandos internos do shell para ver como o shell atual interpreta os nomes.
command -v find
type -a find
No Bash, command -v mostra o nome ou caminho usado para chamar um comando, e type -a mostra os itens encontrados, como aliases, funções, comandos internos e arquivos executáveis com esse nome. Comandos internos do shell ou aliases podem não ter um caminho de arquivo executável separado. Você pode verificar seu comportamento em Descrição do comando interno do Bash.
Encontrando arquivos relacionados com whereis
whereis procura os arquivos executáveis do programa, código-fonte e arquivos de manual em locais padrão e nos caminhos de busca configurados.
whereis find
A lista de resultados exibe os caminhos encontrados após find:. Se você quiser ver apenas os arquivos executáveis, pode usar whereis -b find; se quiser ver apenas os arquivos de manual, pode usar whereis -m find. Se o arquivo não estiver instalado ou estiver fora do caminho de pesquisa, ele não será exibido, então a ausência de saída não significa necessariamente que o arquivo não está em nenhum lugar do sistema.
No util-linux, whereis -l mostra os locais de pesquisa. Para detalhes sobre o alcance da pesquisa, consulte documentação do util-linux whereis .
Procurando por nomes de arquivos com locate
locate busca por entradas no banco de dados criado por updatedb que correspondam a um nome ou caminho. Por exemplo, o seguinte comando encontra entradas nos caminhos indexados que contêm find.
locate find
A saída pode incluir não apenas arquivos executáveis, mas também manuais ou arquivos com outros nomes. As opções podem variar dependendo da implementação instalada, então verifique locate --help primeiro. Por exemplo, no plocate, você pode limitar os resultados a até 10 da seguinte forma.
locate -l 10 find
Se o banco de dados estiver desatualizado, novos arquivos podem estar faltando e caminhos já excluídos podem permanecer. Caminhos excluídos da pesquisa e permissões de acesso do usuário também afetam os resultados. A distribuição pode atualizar periodicamente o banco de dados, e em um ambiente onde a administração do sistema é permitida, você pode atualizá-lo diretamente com sudo updatedb. Como isso pode vasculhar um amplo conjunto de diretórios do sistema, verifique as políticas de gerenciamento antes de executá-lo. Implementação e manuais relacionados podem ser encontrados em documentação oficial do plocate.
Verifique o status da instalação e os arquivos mais recentes
locate pode não estar instalado. Por exemplo, você pode usar o pacote Ubuntu 24.04 plocate e, em um ambiente com privilégios administrativos e acesso ao repositório de pacotes, você pode instalá-lo da seguinte forma.
sudo apt update
sudo apt install plocate
Em outras distribuições ou versões, os nomes dos pacotes e os métodos de atualização podem ser diferentes, então consulte a documentação da respectiva distribuição. Se o banco de dados ainda não existir ou não estiver atualizado após a instalação, o administrador pode precisar inicializá-lo ou atualizá-lo.
Para encontrar o arquivo atual diretamente no seu diretório home sem esperar pelo banco de dados, faça o seguinte:
find "$HOME" -name 'example.txt'
Este comando pesquisa diretamente a árvore de diretórios especificada, portanto pode demorar mais do que locate e não pode pesquisar diretórios para os quais você não tenha permissões de acesso. Substitua example.txt pelo nome real do arquivo que você está procurando e mantenha as aspas para que o padrão de pesquisa não seja expandido pelo shell antecipadamente.




