Shell 如何全局化所有嵌套文件,使其出现子目录异常
我正在尝试使用shell globbing获取所有嵌套的matchin文件夹,除了特定目录中的文件夹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
|__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
,如果这是混淆的一部分:)