サブディレクトリにhw、hw.cpp、およびhw.cpp2ツリーを表示する

サブディレクトリにhw、hw.cpp、およびhw.cpp2ツリーを表示する

tree次のようにサブディレクトリにハードウェアファイルを表示したいと思います。

.
├── exp
│   └── hw
├── src
│   └── hw.cpp2
└── tmp
    └── hw.cpp

$ /usr/bin/tree --noreport .すべてのファイルを表示:

.
├── exp
│   ├── hi
│   └── hw
├── src
│   ├── hi.cpp2
│   └── hw.cpp2
├── ssbuild.bash
├── sslogin.bash
└── tmp
    ├── hi.cpp
    └── hw.cpp

/usr/bin/tree --noreport -P *hw .hw拡張なし:

.
├── exp
│   └── hw
├── src
└── tmp

/usr/bin/tree --noreport -P hw* .生産する:

.
├── exp
├── src
└── tmp

バージョン情報/usr/bin/tree --version:

tree v2.1.0 © 1996 - 2022 by Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro

ベストアンサー1

このユーティリティには、出力の一部になるためにファイル名が一致する必要があるパターンを指定する特定のtreeオプションがあります。-P使用されるパターンタイプ-Pはシェルファイル名のグロービングパターンであるため、シェルがコマンドラインから拡張するのを防ぐには、引用符で囲む必要があります。

tree -P 'hw*' .

現在のディレクトリには一致する名前が含まれていないため*hw(使用中のシェルはzshデフォルトで、bashシェルオプションセットのように一致しないワイルドカードパターンについて文句を言わないため)、次の場合、モードはfailglob拡張されません。あなたはそれを使用しようとしています。ただし、パターンは次の名前とのみ一致します。終わり文字列からhw。ただし、hw*コマンドラインで使用すると出力が表示される理由は説明できません。

例:

$ tree .
.
├── exp
│   ├── hi
│   └── hw
├── src
│   ├── hi.cpp2
│   └── hw.cpp2
├── ssbuild.bash
├── sslogin.bash
└── tmp
    ├── hi.cpp
    └── hw.cpp

3 directories, 8 files
$ tree -P 'hw*' .
.
├── exp
│   └── hw
├── src
│   └── hw.cpp2
└── tmp
    └── hw.cpp

3 directories, 3 files

おすすめ記事