Qual é a diferença básica entre locate
whereis
e which
comando.
A diferença básica que observei é que locate
localiza todos os nomes de arquivos relacionados em todo o sistema de arquivos, enquanto os comandos whereis
e which
fornecem apenas o local (sistema / endereço local do arquivo) do aplicativo instalado. Qual é a precisão da minha observação?
Como esses comandos são implementados internamente. Por que locate
funciona tão rápido em comparação com a pesquisa de traço, enquanto locate
tem que procurar um nome de arquivo específico que corresponda à cadeia de destino em toda a hierarquia do sistema de arquivos?
command-line
unity-dash
search
locate
Chinmaya B
fonte
fonte
type
? : Ptype
, por favor, descrevatype
é outro comando que parece (aos meus olhos) fazer algo semelhante ao que você mencionou.type
comando. Eu tenteiman type
einfo type
.Respostas:
which
localiza o executável binário do programa (se estiver no seu PATH).man which
explica mais claramente:whereis
localiza os arquivos binários, de origem e de página do manual de um programa. Por exemploVocê pode obter detalhes adicionais passando a saída desses comandos como argumentos para
ls -l
oufile
locate
na verdade, encontra todos os arquivos que possuem o padrão especificado em qualquer lugar em seus caminhos. Você pode dizer a ele para encontrar apenas arquivos e diretórios cujos nomes (em vez de caminhos completos) incluem o padrão com a-b
opção, que geralmente é o que você deseja, e fornece uma lista menos pesada.locate
é rápido porque usa um banco de dados binário atualizado periodicamente (uma vez por dia, porcron
). Você pode atualizá-lo você mesmo para garantir que os arquivos adicionados recentemente sejam encontrados executandosudo updatedb
Mais uma coisa
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 canalizo paraless
a lista pode ser longa. Normalmente eu faço:Como o traço do Unity funciona é explicado aqui - ele usa o Zeitgeist para indexar arquivos do sistema e aprender com os padrões de uso, além de permitir que outros aplicativos façam uso desses dados, por isso está fazendo muito mais trabalho do que
locate
.fonte
locate
. O traço usa um índice completamente diferente - mais lento porque ele faz mais coisas (eu editei a minha resposta)sudo updatedb
seu comando é muito útil não sabia que, embora eu o usasse regularmente.Simplesmente
qual comando pesquisa a lista de programas listados nas configurações PATH
O comando whereis também procura por programas que não estão presentes na configuração PATH
Também localiza arquivos por nome de arquivo, mas não pesquisa a estrutura de diretórios em si, mas apenas um banco de dados preparado por updatedb. Por esse motivo, a localização é mais rápida do que a encontrada, mas menos precisa. Exemplos:
fonte