在我的用户文件夹中,我有D ropbox、D ocuments、Downloads 和d ump之类的文件夹。
ls a*
应列出名称以 . 开头的所有文件a
。正确的?但是当我给出命令时,它ls d*
不仅仅显示dump
它,而是显示了转储目录的 ls 。当我给出命令 as时,它会显示以Dls D*
开头的所有文件夹的 ls
那么我在理解它时错过了什么?
编辑:附上截图
在我的用户文件夹中,我有D ropbox、D ocuments、Downloads 和d ump之类的文件夹。
ls a*
应列出名称以 . 开头的所有文件a
。正确的?但是当我给出命令时,它ls d*
不仅仅显示dump
它,而是显示了转储目录的 ls 。当我给出命令 as时,它会显示以Dls D*
开头的所有文件夹的 ls
那么我在理解它时错过了什么?
编辑:附上截图
根据 bash 手册页:
并从ls的信息节点
所以当你给时
ls d*
,d*被扩展为所有以 d 开头的文件/目录名称的排序列表。所以你的命令变成并且由于 dump 是一个目录名称,因此您可以获取目录“dump”中所有文件的列表,但是当您给出时
ls D*
,D*将扩展为“ Desktop Documents Downloads Dropbox ”,因此命令变为并且由于所有这些都是目录,因此您将获得单个目录中的文件列表。如果当前目录中有一个以D开头的文件,它将被单独列出。
ls d* 和 D* 分别列出匹配 d* 和 D* 的文件和文件夹,行为是一样的,你的测试一定有错误。
如果您只想列出文件夹名称而不列出您需要使用“-d”的文件夹内容:
如上所述,
-d
选项是要走的路。添加到我的
~/.bashrc
文件对我来说效果很好。