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“.

Comandos whereis, whatis e which no Linux

Comandos whereis, whatis e which no Linux.
Imagem de FreeCliparts por Pixabay

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.

Sobre Fábio dos Reis (1205 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*