which
encontra o executável binário do programa (se estiver em seu PATH). man which
explica mais claramente:
que retorna os nomes de caminho dos arquivos (ou links) que seriam executado no ambiente atual, seus argumentos foram dados como comandos em um shell estritamente compatível com POSIX. Ele faz isso procurando no PATH por arquivos executáveis que correspondem aos nomes dos argumentos. Não segue links simbólicos.
whereis
localiza os arquivos binários, de origem e man pages de um programa. Por exemplo
$ whereis gimp
/usr/bin/gimp /usr/lib/gimp /etc/gimp /usr/share/gimp /usr/share/man/man1/gimp.1.gz
Você pode obter detalhes adicionais transmitindo a saída desses comandos como argumentos para ls -l
ou file
$ ls -l $(which gimp)
lrwxrwxrwx 1 root root 8 Jun 30 19:59 /usr/bin/gimp -> gimp-2.8
$ file $(which gimp)
/usr/bin/gimp: symbolic link to gimp-2.8
locate
de fato encontra todos os arquivos que possuem o padrão especificado em qualquer lugar em seus caminhos. Você pode dizer que apenas encontre arquivos e diretórios cujos nomes (em vez de caminhos completos) incluam o padrão com a opção -b
, que geralmente é o que você quer, e fornece uma lista menos difícil. / p>
locate
é rápido porque usa um banco de dados binário que é atualizado periodicamente (uma vez por dia, por cron
). Você mesmo pode atualizá-lo para garantir que arquivos adicionados recentemente sejam encontrados executando sudo updatedb
Mais uma coisa sobre locate
- não importa se os arquivos ainda existem ou não, portanto, para evitar encontrar arquivos excluídos recentemente, use -e
. Muitas vezes eu também pipe para less
como a lista pode ser longa. Normalmente eu faço:
sudo updatedb && locate -b -e gimp | less
Como funciona o traço do Unity, aqui - usa o Zeitgeist para indexar arquivos do sistema e aprender com padrões de uso, e permite que outros aplicativos façam uso desses dados, então está fazendo muito mais trabalho do que locate
.