ls选项--group-directories-first导致目录在顶部列出,这使输出的内容更加ls简洁:
ls -l --group-directories-first
但是,它不作用于symlinks,实际上symlinks是目录。有可能使用
ls -l -L --group-directories-first
它将在顶部列出这两种目录,但不会区分正确的目录和符号链接的目录,这再次令人困惑。
可以ls在顶部显示符号链接目录,同时仍使其与常规目录区分开吗?
编辑:
我正在使用bash。
@goldilocks,不,
—
斯特凡Chazelas
ls不lstat()(和readlink对符号连接),除非你使用的-L选项(在这种情况下使用stat())
@StephaneChazelas:嗯,生活和学习。我原以为
—
goldilocks 2014年
S_ISLNK(st_mode)通过via也返回true stat(),但事实并非如此,它只是通过via才返回lstat()。同样,即使链接是指向链接的链接,ISLNK也不会通过stat返回true。这意味着ISLNK可能永远不会通过stat返回true,尽管这是未指定的……
@goldilocks,
—
StéphaneChazelas 2014年
stat在符号链接末尾为您提供文件的属性。如果不存在或无法访问,则stat返回ENOENT,因此返回的值stat永远不会是符号链接。stat()永远不会告诉您有关符号链接的任何信息,就像open永远不会打开符号链接,或chmod()不会更改符号链接的权限...等等。
ls。根据stat()系统调用,指向目录的符号链接仍然是目录(S_ISDIR(st_mode)将返回true)。Evidentiallyls打折符号链接 之前它会检查这个。