如何防止“树”打印与给定模式不匹配的目录?

时间:2019-05-05 07:08:08

标签: bash

我正在尝试使用tree打印与给定模式匹配的文件。首先,当前目录的结构如下。

$tree .
.
├── a
├── search.sh
└── test.java

1 directory, 2 files

请注意,a是一个空目录。

我希望tree打印与模式*.sh匹配的所有文件,这就是我尝试过的。

$tree -P "*.sh"
.
├── a
└── search.sh

1 directory, 1 file

我不知道为什么tree也打印了a,它是一个目录,与给定的模式不匹配?如何防止它这样做?

1 个答案:

答案 0 :(得分:1)

man tree说:

  

在默认情况下使用-P和-I选项时,树不会修剪“空”目录。使用--prune选项。

表示此处不包含匹配文件

因此,以下方法应该起作用:

tree -P '*.sh' --prune
$ mkdir a
$ touch search.sh
$ touch a/a
$ tree -P '*.sh' --prune
.
└── search.sh

0 directories, 1 file