如何从命令tree
限制节点?
我需要为我的主管提供一份我的项目文件树。
这些文件包含一些我不想在树中显示的第三方组件。
我通过将项目文件复制到tmp,删除第三方文件然后运行tree
来解决这个问题。
但是,这个程序变得很麻烦。 我想更好地将我的文件树提供给我的主管。
我有我想在Git中显示的文件,所以Git可以解决这个问题。 我跑得不成功
git ls-files --with-tree
答案 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
命令,最好将第三方文件放在兄弟文件夹中,而不是放在您自己来源的子文件夹中。