「tree」コマンドに複数の無視パターンを指定するにはどうすればよいですか?


105

本番システムのディレクトリ構造を印刷する必要があります。特定のディレクトリをツリーから削除したいのですが。

treeコマンドに複数の無視パターンを指定するにはどうすればよいですか?

回答:


141

すべてのパターンを-Iで区切ってコマンドに指定するだけ|です。マンページから:

-P pattern
      List  only  those files that match the wild-card pattern.  Note:
      you must use the -a option to also consider those  files  begin‐
      ning  with a dot `.' for matching.  Valid wildcard operators are
      `*' (any zero or more characters), `?' (any  single  character),
      `[...]'  (any single character listed between brackets (optional
      - (dash) for character  range  may  be  used:  ex:  [A-Z]),  and
      `[^...]'  (any  single character not listed in brackets) and `|'
      separates alternate patterns.

-I pattern
      Do not list those files that match the wild-card pattern.

だから、例えば

tree -I 'test*|docs|bin|lib'

「docs」、「bin」、「lib」、ディレクトリ、およびディレクトリ階層内のどこにある「test」を含むディレクトリもスキップします。明らかに、ワイルドカードを適用してより強力なマッチングを行うことができます。


4
manページを見て、「-I」の非常に簡潔な説明を見たが、イライラした。上記の数行を見るとは思わなかった。ありがとう。;)
トミスラフ・ナキク・アルファレビッチ14年

.htmlファイルを取得するためにフィルタを設定する方法だけで、他には何もありません
Jitendra Vyasさん

ありがとう!これを使用して、node_modulesを除外してコマンドラインからコードを参照します。
伝道者

2
サブディレクトリなどをdocs/subdoc/除外するにはどうすればよいですか?
user1032531

@JitendraVyas:tree --prune -P '*.html'ディレクトリも取得.htmlできますが、ファイルが含まれるディレクトリのみが取得されます。
fbicknel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.