为什么 shell globs 默认省略点文件?

ove*_*nge 1 shell wildcards

1)

echo *

只显示具有 [az, AZ] 的文件名,但不显示以 .

例如.bashrc没有被shell glob覆盖*

2)

echo .* 给出预期的输出。


在第一种情况下,为什么 shell glob 不包含带点的文件名?

Ste*_*itt 6

默认情况下,这就是 globbing 的工作方式(通常,不仅仅是在 shell 中)。根据glob(7)联机帮助页

路径名

[...]

如果文件名以 '.' 开头,则必须明确匹配该字符。(因此,rm *不会删除 .profiletar c *也不会存档您的所有文件;tar c .更好。)

另请参阅POSIX 的相关部分

您可以使用 shell 设置来更改此设置,或者在某些 shell 中添加全局修饰符以临时更改行为;有关详细信息,请参阅bash 中用于 globbing 的设置是什么,以控制 * 是否匹配点文件