通过Tree或Git限制节点来自`tree`

时间:2009-08-28 12:30:18

标签: unix command-line tree

如何从命令tree限制节点?

#1

我需要为我的主管提供一份我的项目文件树。 这些文件包含一些我不想在树中显示的第三方组件。 我通过将项目文件复制到tmp,删除第三方文件然后运行tree来解决这个问题。

但是,这个程序变得很麻烦。 我想更好地将我的文件树提供给我的主管。

#2

我有我想在Git中显示的文件,所以Git可以解决这个问题。 我跑得不成功

 git ls-files --with-tree

3 个答案:

答案 0 :(得分:1)

您可以指定要匹配的文件,并避免使用常规模式。来自tree manpage

  

-P模式       仅列出与通配符模式匹配的文件。注意:您必须使用-a选项来考虑以点''开头的文件。匹配。有效的通配符运算符是'*'(任何零个或多个字符),'?' (任何单个字符),'[...]'(括号内列出的任何单个字符(可选 - - 短划线)表示字符范围:ex:[AZ])和'[^ ...]'(任何单个字符未在括号中列出)和“|”分隔替代模式。

     

-I模式       不要列出与通配符模式匹配的文件。

在您的特定情况下,运行

tree -I '3rd*'

应该隐藏一个名为“3rd_party”的目录,包括子目录和文件,同时仍然允许像“party_3rd”这样的匹配。显然,名称中不包含“3rd”的其他文件和目录也会正常显示。我在Linux上使用树v1.5.2.1验证了这种行为。

答案 1 :(得分:0)

您可以将第三方工具放在一个单独的子目录中。

然后你只需要消除一个节点。

答案 2 :(得分:0)

最好不要更改tree命令,最好将第三方文件放在兄弟文件夹中,而不是放在您自己来源的子文件夹中。