小编tea*_*144的帖子

文件名扩展:查找实用程序模式匹配与 Bash Shell 模式匹配

对于文件名扩展,'find' 实用程序的 '-name' 选项似乎功能类似,但与 bash shell 的内置模式匹配并不完全相同。

以下是 GNU 参考手册的相关部分:

这本身就非常令人困惑。为了增加这种混乱,'find' 实用程序的手册页(上面引用)的第 2.1.4 节标题为“Shell 模式匹配”,这意味着 'find' 正在使用 shell 的内置模式匹配功能。但是,情况似乎并非如此,因为根据“查找”手册页(http://goo.gl/ngQTKx),在“-name 模式”下,它表示以下内容:

“文件名匹配是使用 fnmatch(3) 库函数执行的。不要忘记用引号将模式括起来,以防止它被 shell 扩展。”

由此看来,执行模式匹配的不是 shell,而是使用 fnmatch 库的 find 实用程序。

以下是我的问题:

  1. bash shell 的默认文件名扩展和模式匹配(禁用 extglob shell 选项)是否与使用 -name 选项的 find 实用程序不同?
  2. 如果是这样,这些区别是什么?
  3. bash 是否还使用 fnmatch 库或其他一些机制来进行文件名扩展和模式匹配?

shell bash find wildcards

6
推荐指数
1
解决办法
1116
查看次数

标签 统计

bash ×1

find ×1

shell ×1

wildcards ×1