プロンプトで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
が存在すると言うのはなぜですか?
スクリーンショット:
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
から毎週更新されます。