为什么 'echo *' 给出的结果与 'ls *' 不同?

Hiv*_*ind 2 ls wildcards echo

例如,如果您在主目录中并键入ls *,您将列出所有目录,并在列出的目录名称下方,列出它包含的文件。另一方面,如果您键入echo *该命令将只列出目录,而不是目录和它们拥有的内容。这是为什么?

Flo*_*sch 6

在这两种情况下*,shell 都会对其进行扩展。

echo 不仅仅是打印扩展产生的参数。

ls 如果是目录,则检查每个参数,如果是目录,则列出其内容。