为什么*将所有文件名放在参数向量中?

时间:2018-05-23 20:55:04

标签: bash echo

我在K&amp; R2的练习中偶然发现了这一点。为什么echo *会打印当前目录中所有文件的名称?更一般地,当我编写一个接受命令行参数的C程序时,当我将它*作为参数时,它将其父目录中的所有文件的名称放入参数vector < / strong>即可。为什么会这样? *有什么特别之处?

我在互联网上找不到任何相关内容。

1 个答案:

答案 0 :(得分:1)

这称为 globbing Here's a detailed description。其他通配符包括?代表一个字符,[abc]代表一组字符,[a-z]代表一系列字符。它内置于各种shell中,包括Bash。

回应你的评论&#34;我认为echo是用C&#34; - 这没什么关系。一旦源代码被编译成包含机器代码的可执行文件,那么编写它的语言并不重要。