検索が検索よりも高速です。

検索が検索よりも高速です。

find.私は/今やっています:- より良いものはありますか?

$sudo find / -perm +4000

しかし、必要な情報を見つけるには長い時間がかかります。特定の許可ビットを設定するほとんどのファイルは静的/非動的であることがわかります。

頑張った

[$] sudo locate --all / -perm +4000                                                                                               
locate: invalid option -- 'p'

しかし、失敗したと見ることができます。同じことを行うために位置検索を使用する方法についてのアイデアがあります。

ただ共有は/usr/bin/locateシンボリックリンクされており、/etc/alternatives/locate共有はシンボリックリンクされています。/usr/bin/mlocate

答え1

残念ながら、ファイル権限を索引付けしないため、この機能を備えた場所の実装を見つけるか直接拡張しない限り、mlocateファイルシステム検索を使用する必要があります。findmlocate

答え2

@shirishが述べたように、mlocateはファイル権限を索引付けしません。しかし、まだいくつかの提案があります。

まず、 find マニュアルでは -perm +mode は使用されなくなりますので、代わりに -perm /mode を使用する必要があります。

- パーマ+モード

パターンセットに許可ビットを含むファイルを検索するための古くて廃止された方法です。代わりに -perm /mode を使用する必要があります。シンボルモードで「+」構文を使用しようとすると、驚くべき結果が得られます。たとえば、「+u+x」は有効なシンボルモード(+u、+x、つまり0111と同じ)なので、-perm +modeとは評価されず、正確なモード指定子-perm modeと評価されるため、一致します。実行ビットが設定されたファイルではなく、正しい権限0111を持つファイルです。この段落が混乱している場合は、一人ではありません。 -perm /modeを使用してください。この形式の -perm テストは廃止されました。 POSIX仕様では、先行する「+」がシンボルパターンの一部として解釈される必要があるため、代わりに「/」を使用するためです。

- パーマ/モード

ファイルの権限ビットパターンを設定します。この形式はシンボルパターンを受け入れます。シンボルモードを使用する場合は、「u」、「g」、または「o」を指定する必要があります。いくつかの例については、例のセクションを参照してください。パターンに許可ビットが設定されていない場合、このテストはすべてのファイルと一致します(アイデアは-perm -000の動作と一致することです)。

第二に、検索を高速化することができます。そのためにはできるだけ具体的でなければなりません。たとえば、

find /some/path ...

ルートディレクトリ全体(/)を検索するのではなく、検索パス(/some/path)を指定するため、検索時間が短縮されます。

最後に、検索中にスキャンしたくないシステムフォルダを除外できます。たとえば、

 find /some/path -not \( -path /excluded/path -prune \) -name *.js

関連情報