Bóson Treinamentos em Ciência e Tecnologia

Comandos which, whereis e whatis no Linux: Qual a diferença?

Diferença entre os comandos which whereis e whatis no Linux

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

Sair da versão mobile