如何使用Bash扩展模式匹配当前目录和其中一个子目录中的文件
例如,以下目录结构:如何使用Bash扩展模式匹配当前目录和其中一个子目录中的文件,bash,pattern-matching,glob,Bash,Pattern Matching,Glob,例如,以下目录结构: $ tree . ├── app.js ├── lib │ └── util.js └── test └── main.js 2 directories, 3 files 我想匹配当前目录和lib/目录中的js文件,类似于: $ ls *.js lib/*.js app.js lib/util.js 但是在一个地球上。但事实并非如此: ls @(.|lib)/*.js 有什么想法吗?我怀疑地球仪是否能达到预期的效果。但是,您可以使用: echo {.,
$ tree
.
├── app.js
├── lib
│ └── util.js
└── test
└── main.js
2 directories, 3 files
我想匹配当前目录和lib/
目录中的js文件,类似于:
$ ls *.js lib/*.js
app.js lib/util.js
但是在一个地球上。但事实并非如此:
ls @(.|lib)/*.js
有什么想法吗?我怀疑地球仪是否能达到预期的效果。但是,您可以使用:
echo {.,lib}/*.js
这很有效。我甚至可以将
ls{*,lib/***}.js
与globstar
一起使用,以递归方式列出子目录中的所有文件。@realgue是ls{*,lib/***}.js
相当于说ls*.js lib/***.js