Locate&updatedb-ファイルが見つかりません


8

走った

sudo /usr/libexec/locate.updatedb

それから

locate Radium3

しかし、それは何も返しません!

しかし

$ ls ~/Library/Containers/com.catpigstudios.Radium3/
Container.plist Data

では、なぜlocateすべてのファイルが表示されないのですか?

OS Xでこのコマンドを正しく使用していますか?

回答:


5

試してください:

sudo /usr/libexec/locate.updatedb

そして設定を見てください:

/etc/locate.rc構成ファイル

編集済み:

ここに出力を投稿:

echo $LOCATE_CONFIG

そして:

cat /etc/locate.rc

そして:

echo $0

更新:

https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man1/locate.1.html#//apple_ref/doc/man/1/locate

ロケートプログラムは、指定されたパターンに一致するすべてのパス名をデータベースで検索します。データベースデータベースのベースは定期的に(通常は毎週または毎日)再計算され、公開されているすべてのファイルのパス名が含まれています

試してみてくださいmdfind代わりに探します

更新2:

mdfind-より正確なテキスト。mdfind textだけで、テキストを含むファイルも提供されます。–デビッドクルンポティック

mdfind -name text

#SEARCHPATHS="/"は設定でコメントを外しましたが、助けにはなりませんでした。-vオプションは追加の出力を生成しないようです:/
davidhq 14

私に追加情報を教えてください。回答の「編集済み」セクション。
user3439968 14


1
$ ls -la /var/db/locate.database -r--r--r-- 1 nobody wheel 19463861 Apr 6 20:08 /var/db/locate.database $ Locate david.jpg / Users / david / temp /david.jpg
davidhq

1
mdfind -name textより正確な回答を更新する必要があります。ただ、mdfind textあなたのファイルができます含まれているだけでなく、テキストを。
davidhq

3

明らかに場所を特定できないため、アクセス許可が原因である可能性があります。詳細については、Plundraによるこの回答を参照してください。

homebrewfindutilsパッケージは、組み込みユーティリティの制限のいくつかを克服するように見えるコマンドとコマンドを有効にします。gupdatedbglocate


ありがとうございました!しかし、私が知っている今、mdutilこれをチェックするのは理にかなっていますか?私が考えることができるユースケースの1つは、手動で再スキャンをトリガーできることですgupdatedb-Spotlightではそれほど簡単ではないか、時間がかかります(ファイルコンテンツのインデックスも作成します)。他の利点はありますか?
davidhq

1
mdutil / spotlightを使用したインデックスの再作成には、確かに時間がかかる場合があります。updatedbその方が速いです。〜/ Libraryおよびその他のシステムファイルを無視しているglocateのに、システムファイルのインデックス作成に問題はないようmdfindです。私は間違いなく私がより多くのヒットを得る見つけるglocateオーバーmdfindほとんどの状況インチ YMMV。
VogonPoetLaureate 14

わかりました、私は今これをテストしています。私はいくつかの問題を見つけたと思います...最初に走ってsudo gupdatedbglocate Radium出力を保存しました。それから私は走りgupdatedb、それは言った:/.Trashes: Permission denied、他のいくつかのフォルダーのために同じ。両方の出力を比較しましたが、同じでした!奇妙な...
davidhq

あなたが言っていることから、最初に実行しsudo gupdatedb(ルートとして実行)、その後gupdatedb、ルートユーザーがアクセスするファイルにアクセスできない通常のユーザーとして実行することにより、フォローアップしました許可はエラーを拒否しました。システム全体のファイル名の完全なデータベースが必要な場合は、rootとして実行し続けます。これにより、glocateコマンドを使用するシステム上の他のユーザーにファイルが公開されます。しかし、あなたが唯一のユーザーであれば、それは問題ないはずです。
VogonPoetLaureate 14

2

Spotlightが使用するのと同じデータベースを検索する場合は、次mdfindの代わりにコマンドを使用できます(正確な代替ではありません)locate

mdfind Radius3
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.