
find src/ -name "*.cc" -o -name "*.cpp" -print
find src/ -name "*.cc" -o -name "*.cpp"
意図された動作は、ディレクトリとそのすべてのサブディレクトリ内のすべての C++ ファイルを検索することです。私が理解したところによると、-print コマンドがデフォルトでした。ただし、これらの 2 つのコマンドでは結果が大きく異なります。これらをファイル (それぞれprinted
とnotprinted
) にリダイレクトすると、次のようになります。
$ wc -l printed notprinted
1813 printed
1979 notprinted
ソートされた各ファイルを比較してもあまり役に立ちません。 から除外されるものについての明確なパターンはありませんprinted
。
何が起きてる?
答え1
答えは優先順位です。アクションが指定されていない場合は印刷されますが、アクションを指定すると、要求した内容が実行されます。ファイル-print
の印刷のみの例では.cpp
、おそらく次のようになります。
find src/ \( -name "*.cc" -o -name "*.cpp" \) -print
異なるアクションを持つ複数の条件を設定できます。