Shell 如何全局化所有嵌套文件,使其出现子目录异常

Shell 如何全局化所有嵌套文件,使其出现子目录异常,shell,glob,Shell,Glob,我正在尝试使用shell globbing获取所有嵌套的matchin文件夹,除了特定目录中的文件夹 |__foo | |__foo.txt |__bar | |__bar.txt |__baz | |__baz.txt 我可以回去吗 bar/bar.txt,baz/baz.txt 要包含的文件夹会有所不同,因此我需要明确排除foo目录。这可能吗 伪代码 在bash中,您可以使用 以你为例 $ find . ./bar ./bar/bar.txt ./biz ./biz/biz.txt

我正在尝试使用shell globbing获取所有嵌套的matchin文件夹,除了特定目录中的文件夹

|__foo
|  |__foo.txt
|__bar
|  |__bar.txt
|__baz
|  |__baz.txt
我可以回去吗

bar/bar.txt
baz/baz.txt

要包含的文件夹会有所不同,因此我需要明确排除foo目录。这可能吗

伪代码

在bash中,您可以使用

以你为例

$ find
.
./bar
./bar/bar.txt
./biz
./biz/biz.txt
./foo
./foo/foo.txt

# turn on extended globbing
$ shopt -s extglob

# Match files not in foo
$ ls !(foo)/*
bar/bar.txt  biz/biz.txt

# Match files in neither foo nor bar
$ ls !(foo|bar)/*
biz/biz.txt

在我看来,模式之间不能有交替(没有
(foo | bar)
),所以过滤很困难。为什么不将globbing与
grep-v
或类似的东西结合使用呢?有点不清楚,目录名和文件名总是相同的吗?所以我只限于globbing,因为我在grunt中使用它。是,排除目录将始终相同,并且要包含的文件名将保持一致。我将
text
的打字错误编辑为
txt
,如果这是混淆的一部分:)