`ls -l`의 `d????????` 출력은 무엇을 의미합니까?

`ls -l`의 `d????????` 출력은 무엇을 의미합니까?

ls -l아래 형식으로 하위 디렉터리 목록을 반환하는 상황은 무엇입니까 ?

 d????????? ? ? ? ?       ? Subdirectory

tree예를 들어 해당 디렉토리에서 시작된 A가 반환됩니다 0 directories, 0 files. 시스템이 하위 디렉터리의 이름을 알고 있는 것 같지만 찾을 수 없습니다.
어떤 누락된 링크가 혼란스럽습니까 ls?

늦은 메모입니다.파일이 아닌 디렉토리에서 다음도 참조하세요.

답변1

포함된 디렉터리에 대한 읽기 권한은 있지만 실행/검색 권한은 없습니다.

다음을 사용하여 쉽게 재현할 수 있습니다.

mkdir -p foo/bar; chmod -x foo; ls -l foo
ls: cannot access 'foo/bar': Permission denied
total 0
d????????? ? ? ? ?            ? bar

Linux 및 BSD에서는 해당 필드 ls에서 디렉터리임을 알 수 있습니다.d_type디렉토리 항목, 그러나 그 이상은 아닙니다.

이는 실제 inode에 액세스할 수 없지만 이를 가리키는 디렉토리 항목만 액세스할 수 있는 다른 상황에서도 발생할 수 있습니다 ls(파일 또는 디렉토리 inode가 이전에 사라진 경우와 같이 ls가능함 stat()- 참조).이것또는 액세스할 수 없는 마운트 지점인 경우 -- 참조이것).

관련 정보