Что означает вывод `d?????????` в `ls -l`?

Что означает вывод `d?????????` в `ls -l`?

В какой ситуации 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, а можно получить доступ только к записи каталога, которая на него указывает (например, когда файл или inode каталога исчезли ранее — см ls.stat()этот, или когда это недоступная точка монтирования -- см.этот).

Связанный контент