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以降でのみ利用可能です。