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

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

例如,如果您在主目录中输入ls *,则会列出所有目录,并在所列目录的名称下方列出其所包含的文件。另一方面,如果您输入echo *命令,则只会列出目录,而不会列出目录及其所包含的内容。这是为什么呢?

答案1

在两种情况下,*都会被 shell 扩展。

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

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

相关内容