`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()它之前已經消失一樣 - 請參閱,或當它是不可訪問的安裝點時 - 請參閱)。

相關內容