30

.h使用する必要があるすべてのファイルを見つけるには、次のことを知っています。

find . -name "*.h"

.hしかし、すべてのAND.cppファイルを見つける方法は?

4

6 に答える 6

44
find . -name \*.h -print -o -name \*.cpp -print

また

find . \( -name \*.h -o -name \*.cpp \) -print
于 2008-11-10T14:35:40.593 に答える
13
find -name "*.h" -or -name "*.cpp"

(フォーマットとして解釈されたアスタリスクを保護するために編集)

于 2008-11-10T14:40:18.573 に答える
7

Paul Tomblin はすでに素晴らしい回答を提供していますが、私はあなたがしていることにパターンがあると思いました.

ある日、find を使用して grep で処理するファイル リストを生成する可能性があります。そのようなタスクには、はるかにユーザー フレンドリーなツールAckが存在します。

perl をサポートするすべてのシステムで動作し、ディレクトリ内のすべての C++ 関連ファイルを再帰的に特定の文字列を検索するのは次のように簡単です。

ack "int\s+foo" --cpp 

"--cpp"デフォルトで一致.cpp .cc .cxx .m .hpp .hh .h .hxxするファイル

(また、デフォルトでリポジトリ ディレクトリをスキップするため、たまたまその中のファイルのように見えるファイルには一致しません。)

于 2008-11-10T15:39:25.863 に答える
2

findこの短い形式で使用できます。

find \( -name '*.cpp' -o -name '*.h' \) -print

-print省略可能です。-o複数のタイプのファイルを検索し、1 つの同じジョブ (たとえば、md5sum の計算など) を実行する場合は、式の間だけを使用すると特に便利です。

于 2014-08-07T05:19:54.593 に答える
2
find . -regex ".*\.[cChH]\(pp\)?" -print

これはcygwinでうまくテストされました。

于 2010-10-04T20:31:16.583 に答える