locate não encontra todos os arquivos que deveria

3

Eu digito locate gmp.h no prompt e obtenho o seguinte:

/usr/src/linux-headers-3.13.0-24/include/linux/igmp.h
/usr/src/linux-headers-3.13.0-24/include/uapi/linux/igmp.h
/usr/src/linux-headers-3.13.0-24-generic/include/linux/igmp.h

Mas quando eu faço ls /usr/include/x86-64-linux-gnu/ eu vejo isso:

a.out.h  asm  bits  c++  fpu_control.h  gmp.h  gnu  ieee754.h  sys

Por que não é locate localizando /usr/include/x86-64-linux-gnu/gmp.h ?

edite: ls -l /usr/include/x64-64-linux-gnu/gmp.h diz isto:

ls: cannot access /usr/include/x64-64-linux-gnu/gmp.h: No such file or diretory

Por que ls /usr/include/x86-64-linux-gnu/ diz que existe quando ls -l /usr/include/x64-64-linux-gnu/gmp.h diz que não existe?

Uma captura de tela:

    
por neubert 23.08.2014 / 17:03

1 resposta

4

locate não encontra arquivos no sistema de arquivos. Em vez disso, ele procura em um banco de dados que contém todos os arquivos.

Este banco de dados geralmente é atualizado uma vez por dia, normalmente por volta das 3 horas da manhã.

Você pode atualizá-lo manualmente com o comando, como updatedb (ou, se não estiver conectado, com credenciais suficientes: sudo updatedb ). Para mais informações, consulte man updatedb .

Com base na sua postagem, que incluiu / usr / src / linux-headers-3, assumi que você está executando isso em uma distribuição linux. Em outros sistemas operacionais, o comando locate pode funcionar um pouco diferente. Por exemplo. No FreeBSD, o comando para atualizar manualmente o banco de dados de localização é executar /usr/libexec/locate.updatedb , que é atualizado semanalmente a partir de /etc/periodic/weekly/310.locate .

    
por 23.08.2014 / 18:09