为什么命令“ ls "*" ”不显示任何内容?

dfd*_*sdf 4 ls bash wildcards

 ls "*"
Run Code Online (Sandbox Code Playgroud)

这在我的目录中没有显示任何内容。为什么?

是不是*一个通配符,将显示所有的东西?

Eri*_*ouf 19

当它在双引号中时,*它不会被视为一个 glob,因此不会被扩展。因此,您要求ls列出一个名为 的文件*,该文件可能不存在。

要查看所有文件,您可以ls不带任何参数运行,因为它的默认行为是向您显示当前目录中的所有文件。如果您ls出于某种原因想将所有文件作为参数传递给,只需删除引号,然后运行

ls *
Run Code Online (Sandbox Code Playgroud)

但这真的很像

ls
Run Code Online (Sandbox Code Playgroud)

除了如果您有很多文件*可能会扩展以将太多参数传递给ls, 并且还会ls *显示目录的内容,而ls它本身只会显示目录在当前目录中而不会下降到它们中。

  • `ls` 和 `ls *` 之间的一个很大区别是当文件中有一些目录时:第一个只会打印目录的名称,但后者也会打印它们的内容。`ls -d *` 更类似于 `ls`,可能更合适。 (4认同)