プロジェクト内のソースファイルを検索する
より単純なコマンドを使用する
一般に、プロジェクトのソースは1か所にある可能性が高く、おそらく2つまたは3つ以下の深さにネストされたいくつかのサブディレクトリにあるため、次のような(おそらく)より高速なコマンドを使用できます
(cd /path/to/project; ls *.c */*.c */*/*.c)
プロジェクトのメタデータを利用する
Cプロジェクトでは、通常Makefileがあります。他のプロジェクトでは、似たようなものがあります。これらは、ファイルのリスト(およびその場所)を抽出するための高速な方法であり、この情報を使用してファイルを見つけるスクリプトを記述します。「ソース」スクリプトがあるので、次のようなコマンドを作成できますgrep variable $(sources programname)
。
検索の高速化
可能な限りfind / …
使用する代わりに、検索する場所を減らしfind /path/to/project …
ます。選択基準を可能な限り簡素化します。より効率的な場合は、パイプラインを使用して選択基準を延期します。
また、検索の深さを制限できます。私にとって、これは「検索」の速度を大幅に向上させます。-maxdepthスイッチを使用できます。たとえば、「-maxdepth 5」
ロケートの高速化
関心のある場所のインデックスを作成していることを確認してください。manページを読んで、タスクに適したオプションを使用してください。
-U <dir>
Create slocate database starting at path <dir>.
-d <path>
--database=<path> Specifies the path of databases to search in.
-l <level>
Security level. 0 turns security checks off. This will make
searchs faster. 1 turns security checks on. This is the
default.
検索の必要性を取り除く
あなたが何かを教えられた、または言われなかった場所を忘れたので、あなたは探しているかもしれません。前者の場合は、メモ(ドキュメント)を書き、後者の場合は尋ねますか?規則、標準、一貫性は大いに役立ちます。
locate
事前に作成されたインデックスを使用することを考慮すると、すでに十分に高速である必要があります(主な注意点は、最新の状態に保つ必要があることです)が、find
ディレクトリ一覧を読み取る必要があります。