パターンに一致するファイルとそれらが含まれるディレクトリのみをツリーにリストさせる

パターンに一致するファイルとそれらが含まれるディレクトリのみをツリーにリストさせる

treeオプションを指定して実行したときに、-Pパターンに一致するファイルが含まれていないディレクトリを出力しないように動作させる方法はありますか?

例として、次のディレクトリ構造を見てみましょう。

${DIRECTORY}/
 runtime/
  runtime_library.so
  runtime_library.a
 my_libraries/
  drawing/
   drawing.so
  basic_functions/
   basic.a
 documents/
  manual.txt
 empty/

これを出力したいですtree:

${DIRECTORY}/
 my_libraries/
  basic_functions/
   basic.a
 runtime/
  runtime_library.a

答え1

特定のパターンに一致するディレクトリのみが必要なので、-Pオプションが必要です。

tree -P "*.a" --prune

上記は、拡張子を持つファイルを含むすべてのディレクトリを返します.aのマニュアルページtreeさらに役立つことがあります。たとえば、パターンを無視するには、オプションを使用できます-I

この--pruneオプションは、ディレクトリにパターンに一致するファイルが含まれていないツリーのセクションの出力を抑制します。

関連情報