web-dev-qa-db-ja.com

Locateは、必要なすべてのファイルを見つけられません

プロンプトでlocate gmp.hと入力すると、次のようになります。

/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

しかし、ls /usr/include/x86-64-linux-gnu/を実行すると、次のように表示されます。

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

locate/usr/include/x86-64-linux-gnu/gmp.hを見つけられないのはなぜですか?

編集:ls -l /usr/include/x64-64-linux-gnu/gmp.hはこれを言います:

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

ls /usr/include/x86-64-linux-gnu/が存在しないと言っているのに、ls -l /usr/include/x64-64-linux-gnu/gmp.hが存在すると言うのはなぜですか?

スクリーンショット:

enter image description here

3
neubert

locateはファイルシステム上のファイルを見つけられません。代わりに、すべてのファイルを含むデータベースを検索します。

このデータベースは通常、1日1回、通常は午前3時頃に更新されます。

updatedbなどのコマンドを使用して手動で更新できます(または、十分な資格情報でログインしていない場合:Sudo updatedb)。詳細については、man updatedbを参照してください。


/ usr/src/linux-headers-3を含むあなたの投稿に基づいて、これをLinuxディストリビューションで実行していると思いました。他のオペレーティングシステムでは、locateコマンドの動作が少し異なる場合があります。例えば。 FreeBSDでは、ロケートデータベースを手動で更新するコマンドは/usr/libexec/locate.updatedbを実行することです。これは、/etc/periodic/weekly/310.locateから毎週更新されます。

4
Hennes