在我的用户文件夹,我有这样的文件夹d ropbox,d ocuments,d ownloads&d UMP。
ls a*应该列出名称以a. 对?但是当我给出命令时ls d*,它不是只显示dump它,而是向我显示转储目录的 ls。当我给出命令 as 时ls D*,它会显示所有以D开头的折叠的 ls
那么我在理解它时错过了哪一部分?
编辑:附上截图

bin*_*inW 17
根据 bash 手册页:
bash 扫描每个单词中的字符 *、? 和 [。如果出现这些字符中的一个,则将该单词视为一个模式,并替换为与该模式匹配的按字母顺序排序的文件名列表
和来自ls 的信息节点
`ls' 程序列出有关文件(任何类型,包括目录)的信息。像往常一样,选项和文件参数可以任意混合。
对于作为目录的非选项命令行参数,默认情况下 'ls' 不递归地列出目录的内容,并省略名称以 '.' 开头的文件。对于其他非选项参数,默认情况下 `ls' 只列出文件名。如果没有指定非选项参数,'ls' 列出当前目录的内容。
所以当你给ls d*,d*被扩展为所有以 d 开头的文件/目录名称的排序列表。所以你的命令变成
ls dump
Run Code Online (Sandbox Code Playgroud)
由于 dump 是一个目录名称,因此您可以获得目录“dump”中所有文件的列表,但是当您给出时ls D*,D*会扩展为“ Desktop Documents Downloads Dropbox ”,因此命令变为
ls Desktop Documents Downloads Dropbox
Run Code Online (Sandbox Code Playgroud)
由于所有这些都是目录,因此您可以在单个目录中获得文件列表。如果当前目录中有一个以D开头的文件,它将被单独列出。
ls d* 和 D* 都分别列出了与 d* 和 D* 匹配的文件和文件夹,行为是一样的,你的测试肯定有错误。
如果只想列出文件夹名称而不列出文件夹内容,则需要使用“-d”:
ls -d D*
Run Code Online (Sandbox Code Playgroud)