システム: Linux Mint 19.1 Tessa, バージョン: Cinnamon
コマンドに問題がありますlocate
。test.txt
デスクトップにファイルを作成しました。その後、私は次のことをしました。
sudo updatedb
しかし、
locate test.txt -i
まだ何も表示されません。
権限mlocate.db
: -rw-r----
root ではなく通常のユーザーで動作します。 (それでsudoコマンドを使います。)
ベストアンサー1
このupdatedb
コマンドはシステムのファイルシステムを検索し、使用可能なファイル名とディレクトリ名のインデックスを作成します。この索引付けは、権限のないユーザーで行われます。つまり、インデックスには、以下を介してアクセスできるファイル名のみが含まれます。みんなシステムユーザー。
あなたのホームディレクトリはあなただけがアクセスできるので(あなたの意見でそのディレクトリに対する権限があると言いましたrwx------
)インデックスは作成されません。合格updatedb
。これは、その結果、名前locate
がホームディレクトリから返されないことを意味します(代わりにsudo locate
使用してもlocate
同じインデックスを照会するので役に立ちません)。
この問題を解決するには、2 つのオプションがあります。
ホームディレクトリ(およびその下にインデックスを付けたいすべてのディレクトリ
updatedb
)の制限を軽減します。権限はrwxr-xr-x
8進数で、または755でなければなりません。locate
ファイルの検索には使用しないでください。代わりに、以下を使用してくださいfind
。find "$HOME" -name test.txt
これにより、
test.txt
ホームディレクトリまたはその下で呼び出されたすべてのエントリを見つけることができます。