OS X中的特殊文件名; 星号的语义?

所以我使用的是Mac OS X 10.5,我有一个叫做的文件

_Mail.grxml 

这正在处理好笑。

 ls -l 

将显示该文件,但是

 ls -l * 

将不会。 这只是一个文件; 注意

 ls -l | wc -l 

给出43(目录中的文件数量),但是

 ls -l * | wc -l 

给42。

所以问题是 – 是否有文件名,OSX只是不好玩? 或者命令行上*的语义与我所期望的不同?

(注意这不是唯一的名字以下划线开头的文件;其他文件只能被*选中)。

你没有说你正在使用什么shell,但是如果是Bash(或者类似的),你可能会让环境variablesGLOBIGNORE设置为在你做path名扩展时排除一些模式,比如在ls -l *

 GLOBIGNORE
              以冒号分隔的模式列表,定义了一组文件名
              被path名扩展忽略。 如果一个文件名匹配一个
              path名称扩展模式也匹配其中的一个模式
               GLOBIGNORE,它将从匹配列表中删除。
 $ touch _Mail.grxml $ ls -l -rw-r--r-- 1 user user 0 2009-11-13 14:57 _Mail.grxml $ ls -l * -rw-r--r-- 1 user user 0 2009-11-13 14:57 _Mail.grxml $ GLOBIGNORE=*.grxml $ ls -l -rw-r--r-- 1 user user 0 2009-11-13 14:57 _Mail.grxml $ ls -l * ls: cannot access _*: No such file or directory 

(这是testing目录中的唯一文件。)

一个想法 – 它是以._开头(点下划线,不只是下划线)?