使用 find 实用程序搜索 *.graphml 文件

使用 find 实用程序搜索 *.graphml 文件

我尝试在 bash 中查找当前目录下的所有 GRAPHML 文件。因此我运行了以下命令:

find . -name *.graphml

我收到错误信息:

find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]

上面的命令有什么问题?奇怪的是,它对其他正则表达式来说运行正常。

答案1

始终将模式括在引号中(例如,*.graphml在您的例子中)。否则,它将在 find 命令之前由 shell 扩展。这意味着find不会*graphml传递文字,而是传递 shell 扩展*.graphml为的内容。

所以:

find . -name "*.graphml*"

看:

  • man find它表示:“不要忘记将模式括在引号中,以防止它被 shell 扩展。”
  • 更多关于引用来自高级 Bash 脚本指南。

相关内容