多个包含和排除的树命令

Lin*_*nda 45 tree command-switch

您能否举一个使用 tree 命令过滤结果的示例,如下所示:

  • 忽略目录(例如binunitTest
  • 仅列出某些具有扩展名的文件(例如.cpp, .c, .hpp, .h
  • 仅提供符合条件的结果文件的完整路径名。

小智 69

一种方法是将模式与-I-P开关一起使用:

tree -f -I "bin|unitTest" -P "*.[ch]|*.[ch]pp." your_dir/
Run Code Online (Sandbox Code Playgroud)

-f每个文件打印的完整路径,并且-I不包括在模式中的文件通过这里竖线分隔。该-P开关仅包含与特定扩展名匹配的模式中列出的文件。

  • *注意:不要在 -I 标志中包含尾部斜杠,例如`-I bin`,而不是`-I bin/`。* (7认同)

har*_*kat 4

usefindtree命令是使用 findprune来排除搜索目录并用于tree -P搜索模式。

使用 prune 开关,例如,如果您想排除misc目录,只需-path ./misc -prune -o在 find 命令中添加 a 即可。

例如。find . -path ./misc -prune -o -exec tree -P <pattern> {} \;或者你可以使用-name "*.cpp" in find

用于排除多个目录使用

find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o