ツリーコマンドのサブディレクトリモード除外は機能しません。

ツリーコマンドのサブディレクトリモード除外は機能しません。

treeコマンドを使用して現在のgitディレクトリを一覧表示しようとしています。

gitignoreパターンに一致するすべてのファイルを除外したいです。解決策が見つかりましたここ有望に見えます。

残念ながら、treeコマンドはパスパターン全体を正しく無視できないようです。

たとえば、次は単純なディレクトリ構造です。

.
|-A
|-|-a.jpg
|-b.jpg

ここでは、次のようにAとそのファイルの両方を除外できます。

tree -I 'A'

次のようにa.jpgまたはb.jpgを除外することもできます。

tree -I 'a.*|b.*'

ただし、次のようにa.jpgを除外することはできません。

tree -I 'A/a.jpg'

だから、フルパスパターンマッチングが壊れているようです。

何か抜けましたか?それとも、ツリーに一致する細かいサブディレクトリパターンを持つことは実際には不可能ですか?

ありがとうございます!

ベストアンサー1

私も同じ問題があります。実際、私はこれがうまく$ tree -I 'A/a.jpg'いかないことに気づきました。

しかし、意味のあるところに道があります。

$ tree
.
├── A
│   ├── a.jpg
│   └── b.jpg
└── a.jpg

$ tree --fromfile <<EOF
`tree -f -i -n -F --noreport | grep -v 'A/a.jpg' | grep -v -E '\.$' | sed "s/^\.//"`
EOF
.
├── A
│   └── b.jpg
└── a.jpg

PS:--fromfileオプションはツリー1.8以降でのみ利用可能です。

おすすめ記事