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

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

它是否显示所有目录中的隐藏文件名?还是仅显示当前目录(包括其中的任何目录)?我不明白为什么ls -ld .*会返回不同的结果(它仅显示当前目录中的隐藏文件和目录,而不显示其中任何其他目录中的文件)?另外,-d单独执行 ( ls -d) 有什么用?

答案1

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

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

.*还可以捕获当前目录中的隐藏文件,但它们仍然被列为.

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


1在 Ubuntu 中符号链接到的 shell dash 中也是如此sh。但是,其他 shell(包括 zsh 和 mksh)的行为更直观,在扩展 时不包括.and 。还值得注意的是,虽然大多数命令在包含在 glob 中时将对and进行操作(包括and - 您可能会用它们弄乱您的系统),但该命令在设计上会失败。...*....*chmodchownrm

答案2

它将列出当前目录中的所有文件 + 目录,包括隐藏文件/目录以及.名称以 开头的文件。

ls表示列出当前目录中的目录以及文件。
a表示目录中的所有文件,包括隐藏的和非隐藏的。
l表示有关文件+目录的长信息列表,包括它们的权限和最后更新时间。
.*表示当前目录中所有名称以 开头的隐藏文件.

答案3

它将返回.该目录中的所有隐藏文件或以 开头的文件。要查看目录中的所有文件(包括隐藏文件),请使用ls -al

相关内容