次のように、treeコマンドを使用して結果を除外する例を教えてください。
bin
、unitTest
).cpp
、.c
、.hpp
、.h
)1つの方法は、-I
および-P
スイッチでパターンを使用することです。
tree -f -I "bin|unitTest" -P "*.[ch]|*.[ch]pp." your_dir/
-f
は、各ファイルの完全パスを出力し、-I
は、縦棒で区切られたパターン内のファイルを除外します。 -P
スイッチには、特定の拡張子に一致するパターンにリストされているファイルのみが含まれます。
検索のディレクトリを除外するためにfindのfind
を使用するtree
およびPrune
コマンドを使用し、パターンの検索に_tree -P
_を使用します。
Pruneスイッチを使用します。たとえば、misc
ディレクトリを除外する場合は、検索コマンドに_-path ./misc -Prune -o
_を追加するだけです。
たとえば、_find . -path ./misc -Prune -o -exec tree -P <pattern> {} \;
_または_-name "*.cpp" in find
_を使用できます
複数のディレクトリを除外するため
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -Prune -o
真の解決策は、完全なパスを出力し、不要なパスをフィルターで除外し、最後に出力を修正することです。
tree -df | egrep -v "\./(bin|unitTest)/.*" | sed -r 's%\./.*/%%g'
すべてのファイルが出力に必要な場合は、「d」パラメーターを削除します。
詳細な説明は、 http://qaon.net/press/archives/572 にあります。日本語が理解できる場合。