Locate ne trouve pas tous les fichiers qu'il devrait

Je tapez locate gmp.h à l'invite et obtenez ce qui suit:

 /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 

Mais quand je fais ls /usr/include/x86-64-linux-gnu/ je vois ceci:

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

Pourquoi ne pas locate localisation /usr/include/x86-64-linux-gnu/gmp.h ?

ls -l /usr/include/x64-64-linux-gnu/gmp.h : ls -l /usr/include/x64-64-linux-gnu/gmp.h dit ceci:

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

Pourquoi ls /usr/include/x86-64-linux-gnu/ dire qu'il existe quand ls -l /usr/include/x64-64-linux-gnu/gmp.h dit qu'il ne fonctionne pas?

Une capture d'écran:

Entrez la description de l'image ici

locate ne trouve pas de fichiers sur le système de fichiers. Au lieu de cela, il recherche dans une base de données qui contient tous les fichiers.

Cette base de données est habituellement mise à jour une fois par jour, généralement vers 3 heures du matin.

Vous pouvez le mettre à jour manuellement avec une commande telle que updatedb (ou si vous n'êtes pas connecté avec des informations d'identification suffisantes: sudo updatedb ). Pour plus d'informations, voir man updatedb .


Sur la base de votre publication qui comprenait / usr / src / linux-headers-3, j'ai supposé que vous l'exécutez sur une distribution linux. Sur les autres systèmes d'exploitation, la commande locate peut fonctionner légèrement différente. Par exemple, sur FreeBSD, la commande pour mettre à jour manuellement la base de données de localisation consiste à exécuter /usr/libexec/locate.updatedb qui est mis à jour chaque semaine de /etc/periodic/weekly/310.locate .