ls -al .* 命令返回什么?

BEW*_*ARB 5 command-line ls

它是否在所有目录中显示隐藏文件名?或者只是当前目录(包括其中的任何目录)?我不明白为什么ls -ld .*返回不同的结果(它只显示当前目录中的隐藏文件和目录,而不显示其中任何其他目录中的文件)?-d单独做什么(ls -d)?

Zan*_*nna 8

ls -al .*显示当前目录中名称以开头的所有目录的内容.(即所有与 shell glob 匹配的目录.*

在 Bash 中,.*glob 也解析为.and ..。由于.表示当前目录和..父目录,因此也显示了这两个目录的内容,包括任何隐藏的文件和目录。1

.* 还捕获当前目录中的隐藏文件,但它们无论如何都被列为 .

“ls --directory”代表什么?-d标志导致显示目录本身,而不是其内容。


1这也是 dash 的情况,它是shUbuntu 中符号链接的 shell 。但是,包括 zsh 和 mksh 在内的其他 shell 的行为更直观,.并且..在扩展.*. 还值得一提的是,虽然大多数命令将要操作...当它们包括在.*水珠(包括chmodchown-你真的可以搞砸你的系统的),该rm命令将很有帮助设计没有这样做。