10

私は最近、ローカルWeb開発エリア全体を、MacでMAMPを使用するのではなく、MacPortsのものを使用するように移動しました。私はPython/Djangoを使い始めており、MAMPはもう必要ありません。

つまり、Preferencesファイルも含めてApplicationsフォルダーからMAMPをアンインストールしましたが、ターミナルで「locate MAMP」コマンドを実行すると、すべての/ Applications /MAMP/のものがまだそこにあるかのように表示されます。 ?そして、私cdが/ Applications / MAMP /に入ると、それは存在しませんか?

Locateが一種のインデックス検索システムであることに関係しているので、これらの古いファイルパスはキャッシュされていますか?理由と、表示されなくなるように並べ替える方法を説明してください。

4

5 に答える 5

9

あなたは正しい考えを持っています:locate''と呼ばれるデータベースを使用しますlocatedb。通常、システムのcronジョブによって更新されます(OS Xではどちらかはわかりません)。コマンドを使用して強制的に更新できますupdatedb。特にhttp://linux-sxs.org/utilities/updatedb.htmlを参照してください。


また、期待するファイルが見つからない場合は、OSXのlocate(1)マンページ のバグセクションにあるこの重要な警告に注意してください。

The locate database is typically built by user ''nobody'' and the locate.updatedb(8) utility skips directories which are not readable for user ''nobody'', group ''nobody'', or world. For example, if your HOME directory is not world-readable, none of your files are in the database.

于 2009-06-29T22:40:37.987 に答える
6

他の答えは、ロケートデータベースを更新する必要があることについて正しいです。ロケートDBを更新するための次のエイリアスがあります。

alias update_locate='sudo /usr/libexec/locate.updatedb'

mdfindを見つけたので、実際には、locateをあまり使用しなくなりました。それは、OSXがlocandedbと比較して最新の状態に保つのにはるかに優れているスポットライトファイルインデックスを使用します。また、コマンドラインから検索できる機能もかなり強力です。

于 2009-06-30T03:19:32.820 に答える
0

実際、locateコマンドはインデックスを検索するため、非常に高速です。インデックスはupdatedbコマンドによって生成されます。このコマンドは通常、夜間または毎週のジョブとして実行されます。

したがって、手動で更新するには、updatedbを実行するだけです。

于 2009-06-29T22:41:54.503 に答える
0

マニュアルページによると、そのデータベースは週に1回更新されます。

NAME
     locate.updatedb -- update locate database

SYNOPSIS
     /usr/libexec/locate.updatedb

DESCRIPTION
     The locate.updatedb utility updates the database used by locate(1).  It is typically run once a week by
     the /etc/periodic/weekly/310.locate script.
于 2009-06-29T22:42:01.993 に答える
0

マンロケートページを見てください

http://unixhelp.ed.ac.uk/CGI/man-cgi?locate+1

Locateは、実際のファイルシステムではなく、データベースを検索することがわかります。updatebコマンドを使用して、そのデータベースを更新できます。

また、これはデータベースであるため、定期的に更新しない限り、データベースにないファイルシステムにあるファイルを見つけてください。

于 2009-06-29T22:43:13.020 に答える