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
S_ISLNK(st_mode)
또한 via를 통해 true를 반환 한다고 생각 stat()
했지만 그렇지 않습니다 lstat()
. 또한 링크가 링크에 대한 링크 인 경우에도 ISLNK는 stat를 통해 true를 반환하지 않습니다. ISLNK
stat를 통해 true를 반환하지 않을 수도 있음을 의미합니다. 지정되지 않았지만 ...
@goldilocks
—
Stéphane Chazelas
stat
는 심볼릭 링크 끝에서 파일의 속성을 제공합니다. 존재하지 않거나 액세스 할 수없는 stat
경우 ENOENT를 반환하므로 반환되는 stat
것은 심볼릭 링크가 아닙니다. stat()
심볼릭 링크를 open
열지 않거나 심볼릭 링크 chmod()
의 권한을 변경하지 않는 것처럼 심볼릭 링크에 대해 아무 것도 말하지 않습니다 ...
ls
.stat()
시스템 호출 에 따르면 디렉토리에 대한 기호 링크는 여전히 디렉토리입니다 (S_ISDIR(st_mode)
참을 리턴 함). 이를 확인 하기 전에ls
심볼릭 링크 를 증거 적으로 할인합니다 .