我正在使用 bash。假设我有一个名为 的文件filelist
,其中包含文件列表:
stuff/**/*.csv # to keep it simple (without loops), assume just one entry
#*.txt
#foo.md
#bar.bin
我想扩展一下:
ls $(cat filelist)
我得到:
ls: 无法访问 'stuff/**/*.csv': 没有这样的文件或目录
我想要的是将其扩展为一个文件列表,我可以将其传输到我的主应用程序进行处理。我怎样才能做到这一点?
我的猜测是您希望
**
进行递归通配符,对吗?shopt -s globstar
但 Bash 中默认未启用该功能,需要通过(类似于dotglob
和)启用extglob
。您还可以使用 检查该值shopt globstar
。(或者
shopt |grep glob
回应set -o |grep glob
评论中的建议;注意shopt
和set -o
之间的区别。)