Comandos which, whereis e whatis no Linux: Qual a diferença?
Diferença entre os comandos which, whereis e whatis no Linux
No Linux, existem alguns comandos que facilitam a busca de informações sobre pacotes e seus arquivos executáveis (binários), manuais, como a localização desses arquivos em disco (ou SSD!), ou ainda mesmo apenas para entender melhor a funcionalidade de cada comando.
Três comandos que considero bastante úteis para realizar tarefas deste tipo são os comandos which, whereis e whatis, que, apesar de serem aparentados, funcionam de forma ligeiramente diferente entre si, entregando resultados distintos.
Neste artigo explico a diferença entre eles, suas sintaxes e como utilizá-los na prática com alguns exemplos simples.
Vamos lá.
1. O comando which
O comando which
é usado para identificar a localização (ou seja, o caminho) de um programa ou comando no sistema. Ele percorre a variável de ambiente PATH
do usuário e retorna o caminho completo para o binário que será executado se o comando solicitado for digitado no terminal.
Sintaxe:
which [opções] nome_do_comando
Exemplos de uso:
1. Se quisermos saber onde o executável do comando ls
está localizado, basta rodar:
which ls
Resultado:
/bin/ls
2. Já para verificar onde está o executável do python
:
which python3
Saída possível:
/usr/bin/python3
Se o arquivo não for encontrado, nada será retornado no terminal, nem mesmo uma mensagem de erro.
2. O comando whereis
O comando whereis
é mais abrangente que o which
. Ele busca não só o caminho do executável do programa, mas também as localizações de seus arquivos de origem, páginas de manual e outros arquivos relacionados. Assim, ele traz mais informações do que apenas a localização do arquivo binário em si.
Sintaxe:
whereis [opções] nome_do_comando
Exemplos de uso:
1. Se quisermos buscar todas as informações do comando ls
:
whereis ls
Saída possível:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
2. Para procurar informações sobre o comando bash
:
whereis bash
Saída possível:
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz
Se o arquivo não for encontrado, apenas o nome do próprio arquivo pesquisado será exibido no terminal, mas sem mostrar uma mensagem de erro.
3. O comando whatis
Já o comando whatis
tem uma função diferente dos dois anteriores. Ele consulta um banco de dados de manuais (geralmente com a ajuda do comando man
) e retorna uma descrição breve sobre o comando ou programa especificado. Ele não retorna caminhos de arquivos, mas sim uma breve explicação sobre o comando.
Sintaxe:
whatis [opções] nome_do_comando
Exemplos de uso:
1. Para obter uma descrição resumida sobre o comando ls
:
whatis ls
Saída possível:
ls (1) - list directory contents
2. Para saber rapidamente o que o comando grep
faz:
whatis grep
Saída possível:
grep (1) – print lines matching a pattern
Se o arquivo não for encontrado, será exibida uma mensagem do tipo “nada apropriado“.
Comparação entre os comandos which
, whereis
e whatis
Comando | Função | Informações retornadas |
---|---|---|
which |
Retorna o caminho completo do executável encontrado no PATH . |
Caminho do binário (executável) |
whereis |
Localiza o binário, código-fonte e páginas de manual de um comando. | Caminho do binário, manual e arquivos relacionados |
whatis |
Retorna uma breve descrição do comando consultado. | Descrição resumida (com base no man ) |
Conclusão
Vimos neste post que os comandos which
, whereis
e whatis
são ferramentas bastante úteis no Linux para buscar informações sobre programas e comandos. Enquanto o which
se concentra apenas em localizar o binário de um programa, o whereis
retorna uma saída um pouco mais completa, incluindo arquivos relacionados e manuais. Já o comando whatis
é útil para obter uma descrição rápida de um comando que você não conheça.
Escreva um comentário