Administração de Linux Question #019e3987
Qual dos seguintes comandos pode ser usado para localizar programas e suas respectivas páginas de manual e arquivos de configuração?
dirname
which
basename
query
whereis
Official Explanation / Community Explanations
O comando whereis foi projetado especificamente para localizar executáveis binários, código-fonte e arquivos de páginas de manual de um determinado programa. Ele realiza buscas em diretórios padrão do sistema (por exemplo, /bin, /sbin, /usr/bin, /usr/share/man) e exibe os caminhos para o binário, a página de manual e os arquivos de configuração, se existirem. Por exemplo, whereis ls retorna uma saída semelhante a ls: /bin/ls /usr/share/man/man1/ls.1.gz.
Como funciona
whereis usa uma lista de diretórios codificada (normalmente definida na variável de ambiente WHEREIS ou valores padrão compilados) para pesquisar arquivos. Não depende de um banco de dados como locate; em vez disso, realiza uma busca no sistema de arquivos em locais comuns. O comando suporta opções como -b (somente binários), -m (somente páginas de manual) e -s (somente código-fonte).
Por que o valor correto está certo
O comando whereis é a única opção capaz de localizar tanto programas quanto suas respectivas páginas de manual e arquivos de configuração. É um utilitário padrão em sistemas do tipo Unix e faz parte do pacote coreutils do GNU.
Por que os valores incorretos estão errados
dirnameextrai o caminho do diretório a partir de um determinado caminho de arquivo (por exemplo,dirname /usr/bin/lsretorna/usr/bin). Não realiza buscas por programas ou páginas de manual.whichlocaliza o arquivo executável associado a um comando pesquisando o$PATHdo usuário. Ele exibe apenas o binário, não as páginas de manual ou os arquivos de configuração.basenameremove o diretório e o sufixo de um caminho de arquivo (por exemplo,basename /usr/bin/lsretornals). Não realiza nenhuma busca.querynão é um comando padrão do Linux para localizar programas ou documentação. Pode ser usado em contextos específicos (por exemplo, consultas de pacotes RPM comrpm -q), mas não serve ao propósito geral descrito na pergunta.