如何使用带有“设置括号”的 glob 模式从 shell 中执行递归文件名“查找”

如何使用带有“设置括号”的 glob 模式从 shell 中执行递归文件名“查找”

从 shell 中,我想递归搜索目录中给定的 glob 模式。但我想在我的模式中使用 set-braces-syntax:

find ~/path/to/dir -name '*.{h,m}'

在这里我想递归地查找位于给定路径下任何位置的所有文件.h.m

我从阅读中得知glob 文档这些使用花括号 ( ) 的“集合”模式{称为

csh(1) 样式括号表达式

然而,我在 macOS 12.3.1 上使用 bash 和 tcsh 进行的测试表明,不支持此 set 语法find。阅读查找手册页,我没有看到任何提到支持这种语法(也许我错过了)。

我如何使用这个特定的“set”或“csh 样式”花括号语法来实现这一点?我对使用不同语法的解决方法不太感兴趣。

答案1

csh 是“c-shell” 花括号通常被称为数组分隔符,并且不限于 csh,也不受 csh 定义,它们构成了常用表达 它们可能需要“转义”,以便您的 shell 能够正确解析它们。(它们前面有一个反斜杠,即:\{...\}

也许这有帮助:

https://stackoverflow.com/questions/413071/regex-to-get-string-between-curly-braces

相关内容