我试图使用命令获取目录中所有 python 和 html 文件的列表find Documents -name "*.{py,html}"。
find Documents -name "*.{py,html}"
然后出现了手册页:
模式中的大括号(“榹}”)不被认为是特殊的(即 find .-name ‘foo{1,2}’ 匹配名为 foo{1,2} 的文件,而不是文件 foo1 和 foo2 .
由于这是管道链的一部分,我希望能够指定它在运行时匹配哪些扩展(无硬编码)。如果 find 做不到,那么 perl 单线(或类似的)就可以了。
使用-o,表示“或”:
-o
find Documents \( -name "*.py" -o -name "*.html" \)
您需要以编程方式构建该命令行,这并不容易。
您是否使用 bash(或 Windows 上的 Cygwin)?如果你是,你应该能够做到这一点:
ls **/*.py **/*.html
这可能更容易以编程方式构建。