我正在尝试使用shell globbing来获取所有嵌套的matchin文件夹,除了特定目录中的那些
|__foo
| |__foo.txt
|__bar
| |__bar.txt
|__baz
| |__baz.txt
我可以回球吗
bar/bar.txt
,baz/baz.txt
要包含的文件夹会有所不同,所以我需要明确地排除foo目录。这可能吗?
PSEUDO CODE
类似于[**|!foo]/*.txt
答案 0 :(得分:3)
在bash中,您可以使用extended globbing
为您的例子
$ 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