我需要打印生产系统的目录结构,并想从树中删除一些特定的目录?

如何为tree命令指定多个忽略模式?

#1 楼

您只需将所有模式提供给-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'


跳过“文档”,“ bin” ','lib',目录以及名称中带有“ test”的任何目录,无论它们位于目录层次结构中的何处。显然,您可以应用通配符进行更强大的匹配。

评论


看着手册页,看到对“ -I”非常简洁的解释,感到沮丧。没想到要看上面几行。谢谢。 ;)

– Tomislav Nakic-Alfirevic
2014年11月13日在9:47

如何将过滤器设置为仅获取.html文件,仅此而已

–吉坦德拉·维亚斯(Jitendra Vyas)
2015年9月4日在10:23

谢谢!我使用它从命令行浏览我的代码,但不包含node_modules。

–传教士
17 Mar 15 '17在15:43

如何排除子目录(例如docs / subdoc /)?

–user1032531
17年12月25日在12:39

@JitendraVyas:怎么样--tree --prune -P'* .html'您还将获得目录,但只有其中包含.html文件的目录。

–fbicknel
18年8月22日在14:57