В какой ситуации 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()
этот, или когда это недоступная точка монтирования -- см.этот).