2009-06-29 12 views
8

私は最近、私のMac上でMAMPを使うのではなく、私のローカルWeb開発エリア全体をMacPortsのものに移動しました。私はPython/Djangoに入ってきましたが、MAMPはこれ以上必要ありませんでした。unix locateコマンドは、もはや存在しないファイル/フォルダをどのように表示しますか?

私はアプリケーションフォルダからMAMPをアンインストールしましたが、環境設定ファイルもありますが、ターミナルで 'MAMPを探す'コマンドを実行すると、どのように表示されますか?/アプリケーション/ MAMP/stuffそれはまだすべてそこにある?そして、私が 'cd'を/ Applications/MAMP /に入れると、それは存在しませんか?

インデックス検索システムの一種であるため、これらの古いファイルパスはキャッシュされますか?理由を説明し、並べ替える方法を教えてください。

答えて

8

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


、あなたは、OSX」locate(1)マン・ページのBUGSセクションからこの重要な注意点に注意することは期待してファイルを見つけることができませんあなたがない場合:確かに

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.

+0

同じ理由で、locateは最近作成されたファイルを表示することができません。最後に更新されたファイルから作成されたファイルは、locateによって表示されません。 –

+0

OSX 10上。10の場合、dbを更新するシステムcronは '/ System/Library/LaunchDaemons/com.apple.locate.plist'です。 –

+0

また、あなたが期待するファイルが見つからない場合、この重要な警告をバグOSXの[locate(1)]セクション(http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/locate.1.html)man-page: 'データベースの場所ユーザー '' nobody ''、group '' nobody ''、またはworldのために、 locate.updatedb(8)ユーティリティは読み込み不可能なディレクトリ をスキップします。たとえば、 HOMEディレクトリが世界で読めない場合、ファイルはデータベースにありません。 ' –

0

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

手動で更新するには、updatedbを実行してください。

0

はmanページによると、そのデータベースは週に一度更新されます

http://unixhelp.ed.ac.uk/CGI/man-cgi?locate+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. 
0

が見つけmanページを見てみましょう実際のファイルシステムではありません。 updatedbコマンドを使用して、そのデータベースを更新できます。

また、データベースであるため、定期的に更新しない限り、ファイルシステム内に存在しないファイルはデータベースにありません。

6

他の回答は、ロケートデータベースを更新する必要があるという点については正しいです。私は私の見つけDBを更新するには、この別名を持っている:私は実際に私がmdfindを見つけたことを今はもうすべてが多くを見つける使用していない

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

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

+0

これはいつまでも... –

関連する問題