Por que não é possível 'localizar' ou 'encontrar' encontrar 'makeinfo'?

Por que não é possível 'localizar' ou 'encontrar' encontrar 'makeinfo'?

Quando eu faço:

locate makeinfo

OU

find / -name "*makeinfo*"

Eu não recebo nada.

Mas quando o faço makeinfo --help, recebo a saída de ajuda adequada.

Como isso é possível? Se makeinfofor um executável, ele deve estar localizadoem algum lugar, correto? Ou pode ser um apelido, o que não é. Eu verifico .bashrce .bash_aliasestodos esses arquivos. Não consigo imaginar como isso pode ocorrer.

Quais são as razões para esse comportamento estranho?

Editar: type makeinfoe which makeinfoambos produzem /usr/bin/makeinfo.

Responder1

Eu encontrei o problema.

Parece que locateé rápido porque depende de um banco de dados construído para pesquisar coisas com mais rapidez. Este banco de dados é atualizado diariamente. O updatedbcomando faz isso. Acontece que updatedbele é executado a cada 24 horas, e ainda não se passaram 24 horas quando tentei pesquisar o arquivo usando locate, desde o momento em que o arquivo foi criado. Depois de executar sudo updatedb, localizar conseguiu encontrar o arquivo.

Sugiro a leitura das páginas de manual de locatee updatedbpara obter mais informações.

Quanto a find, parece que fiquei impaciente e não esperei que terminasse a sua execução.

Responder2

Não uso ou sei muito sobre 'locate(1)'. Mas 'find(1)' pode não estar conseguindo encontrar seu comando porque, por padrão, ele não cruza as linhas do sistema de arquivos. O comando makeinfo provavelmente está em /usr/bin (digite which makeinfopara encontrá-lo), e a partição '/usr' pode estar em outro sistema de arquivos.

EDITAR: Dó! Eu vejo o problema! não use "*makeinfo*". Use 'makeinfo'. Se você realmente deseja encontrar um arquivo que contenha a string 'makeinfo' em algum lugar, use: find / -type f -name '*makeinfo*'. Ou seja, compare apenas com arquivos (não com diretórios - muito mais rápido) e use aspas simples, não aspas duplas.

EDIÇÃO final: Minha resposta foi /muito/ errada. Seus problemas não estavam relacionados a aspas duplas.

informação relacionada