1)
echo *
只显示具有 [az, AZ] 的文件名,但不显示以 .
例如.bashrc
没有被shell glob覆盖*
2)
echo .*
给出预期的输出。
在第一种情况下,为什么 shell glob 不包含带点的文件名?
默认情况下,这就是 globbing 的工作方式(通常,不仅仅是在 shell 中)。根据glob(7)
联机帮助页:
路径名
[...]
如果文件名以 '.' 开头,则必须明确匹配该字符。(因此,
rm *
不会删除.profile
,tar c *
也不会存档您的所有文件;tar c .
更好。)
另请参阅POSIX 的相关部分。
您可以使用 shell 设置来更改此设置,或者在某些 shell 中添加全局修饰符以临时更改行为;有关详细信息,请参阅bash 中用于 globbing 的设置是什么,以控制 * 是否匹配点文件。
归档时间: |
|
查看次数: |
413 次 |
最近记录: |