搜索路径时**如何工作

How does the ** work while searching for a Path

据我所知,它以递归方式匹配文件名和目录,但我没有找到很多相关信息,但它是如何工作的?

glob-expression ** 用于匹配所有文件 零个或多个目录和子目录。如果模式后跟 /,则只有目录和子目录匹配。

这意味着它在命令行 path-name 扩展模式期间以递归方式 file-search 使用。

根据您使用的 shell,需要启用它。在 bash 中,这是通过以下方式完成的:

$ shopt -s globstar

示例如下:

# list all files recursively
$ echo **
# list all files recursively that end with .txt
$ echo **/*.txt
# list all files recursively that are in a subdirectory foo
$ echo **/foo/**

请注意以下模式不能递归工作 **.txt。这只是被视为两个单个星号 glob 的组合,与 *.txt.

相同

注:bash和zsh有细微差别,但大体上是一样的。