过滤`tree`命令的输出

时间:2018-12-16 07:47:32

标签: bash

我有一个包含许多子目录的目录,每个子目录包含许多具有不同扩展名的文件。

我是否可以过滤tree命令的输出,以使具有某些扩展名的文件(例如.log.msh或某些命名目录)不在输出中

考虑以下示例

    .
    ├── dir1
    │   ├── bar.log
    │   ├── blahblah
    │   │   └── blah.txt
    │   ├── hello.txt
    │   └── test.msh
    ├── foo.log
    ├── out
    ├── test.py
    └── test.txt

    2 directories, 8 files

我想过滤离开某些目录(显然是的内容)和具有某些扩展名的文件。例如,我想过滤掉目录blahblah以及所有扩展名为.msh.log

的文件的内容。

所以我希望输出是

.
├── dir1
│   ├── hello.txt
├── out
├── test.py
└── test.txt

1 个答案:

答案 0 :(得分:2)

tree命令具有-I选项,可让您过滤出与给定模式匹配的文件和目录。

tree -I 'blahblah|*.msh|*.log'