Bash 中的 * 和 / 是什么?

Bash 中的 * 和 / 是什么?

我试图理解以下代码ls -d */并得出以下解释:*/“匹配当前目录中的所有子目录”。但那个答案指出了,这是做什么的。但我的问题是,这些标志叫什么,它们是如何工作的?

据我所知,我可以看出这/意味着根,但它也可以代表目录树中的一些节点。那是对的吗?星号呢?

答案1

*它只是一个球体。

*/是一个 hacky glob,它匹配任何后跟/(子目录)的东西,也就是查找所有子目录的简单方法内置代码。

Glob 是 shell 模式,可用于匹配字符串或扩展路径名:
[[ $name = Bob* ]]
rm -- *.txt
printf '%s\n' */

http://mywiki.wooledge.org/glob

相关内容