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

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

어떤 상황에서 ls -l다음 하위 디렉터리 목록이 반환됩니까?

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

예를 들어, tree이 디렉터리에서 반환이 시작되었습니다. 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디렉토리 항목, 그러나 그 이상은 아닙니다.

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

관련 정보