搜索路径时**如何工作
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有细微差别,但大体上是一样的。
据我所知,它以递归方式匹配文件名和目录,但我没有找到很多相关信息,但它是如何工作的?
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有细微差别,但大体上是一样的。