`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 上,能够lsd_type目录项,但仅此而已。

这也可能发生在其他情况下,即ls无法访问实际的索引节点,而只能访问指向它的目录条目(就像文件或目录索引节点在ls能够访问stat()它之前已经消失一样 - 请参阅,或者当它是不可访问的安装点时 - 请参阅)。

相关内容