cygwinでlocateを使用する方法は?


14

locateファイルの検索に使用しようとしていますが、プログラムから何も返されません。現在のディレクトリにあるファイルを見つけることさえできません。locate仕事をするにはどうすればいいですか?


sudo updatedbを使用しますか?
ukanth 09年

回答:


15

本質的に、最初にupdatedbを実行する必要があります。これにより、locateが使用するデータベースが構築されます。
最初の解決策として、単にupdatedb --localpaths = c:/を実行します。

cygwin cronを介してupdatedbをセットアップする方法を含む、多くの良いヒントについては、このブログ投稿を参照してください:https : //web.archive.org/web/20061114000822/www.weiqigao.com/blog/2006/08/14/ten_steps_to_higher_cygwin_productivity .html (archive.orgへの更新されたリンク)

スペースを含むパスに問題がある場合は、関連する投稿のGoogle「cygwin updatedb」。WinXP Proで(許可が拒否された場合を除き)問題は発生していませんが、他のプラットフォームではこれが必要になる場合があります。


5
ブログ投稿は、新しいアドレスを持っている、webpages.charter.net/weiqigao/2006/08/14/...
ステファンRasmusson

デフォルトのオプション(または--localpaths = c:/)が無限ループへのリンクをたどるので、更新されたbの単純な呼び出しはCygwinでは機能しないことがわかりました。私はそれがそれらをスキップすることはできませんので、Windows 7のリンクの特定の種類は、(デフォルト-follow振る舞いがあるとして反直観的になって、)、Cygwinのへのシンボリックリンクとして表示されないため、これがあると思います
フィル・ゲッツ

ブログ投稿は到達不能です。ここでアドバイスをインラインする方が良いでしょう。
reinierpost

1
@reinierpostに感謝し、リンクを修正しました。投稿はインライン化するには長すぎます、私見。
dirkjot


-1

あなたが望むコマンドは find

やるman find構文とオプションを表示します

Locateコマンドは、事前に構築されたファイル名のデータベースに対して実行されます


はい、Locateは事前に構築されたデータベースに対して実行されます。OPが代わりに検索することを意味するのはなぜですか?
CarlF 2009年

1
Findは、locateが存在しない場合、または何らかの理由で機能しない場合に、少なくとも要求されているジョブを実行します。よりゆっくりと、検索するための事前に準備されたデータがないため、動作し、結果は適切に更新されて完全になる可能性が高くなります(ファイルシステムの一部を除外するようにupdatedbが構成されている場合があります)。
デビッドスピレット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.