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
打折符号链接 之前它会检查这个。