find/globbing:我在这里做错了什么?

find/globbing: what am I doing wrong here?

希望是一个快速的问题,我很恼火,以至于我自己似乎无法解决这个问题:

我正在尝试列出文件名中只有主要版本的所有 Mac 库,如

libFoo.X.dylib

其中 X 是小数(在我的例子中是一位数)。

我正在使用

find /path/to/here -name "lib[^.]*.[0-9].dylib"

认为这应该给我包含以下内容的文件名 - 以 "lib" 开头且没有点的部分 - 一个点 - 一个数字 - .dylib 扩展名

但是我也得到了 libfoo.0.1.2.dylib 类型的文件,所以我的假设一定是哪里出了问题。

您可以将此 find-regex 选项一起使用:

find /path/to/here -regex '.*/lib[^.]*\.[0-9]\.dylib'

变化是:

  • 使用 -regex 选项匹配正则表达式
  • .*/ 开头允许在文件名
  • 之前匹配路径名
  • 必须在正则表达式中对点进行转义以匹配文字点