Was bedeutet die Ausgabe `d?????????` in `ls -l`?

Was bedeutet die Ausgabe `d?????????` in `ls -l`?

Was ist der Grund dafür, dass ls -lim folgenden Formular eine Liste mit Unterverzeichnissen zurückgegeben wird?

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

Ein treeAufruf in diesem Verzeichnis gibt 0 directories, 0 filesbeispielsweise zurück. Das System scheint den Namen des Unterverzeichnisses zu kennen, kann es aber nicht finden.
Welcher fehlende Link verwirrt ls?

Verspätete Notiz.Zu Verzeichnissen, also nicht zu Dateien, siehe auch:

Antwort1

Sie verfügen über Leseberechtigungen für das enthaltene Verzeichnis, jedoch nicht über Ausführungs-/Suchberechtigungen.

Einfach zu reproduzieren mit:

mkdir -p foo/bar; chmod -x foo; ls -l foo
ls: cannot access 'foo/bar': Permission denied
total 0
d????????? ? ? ? ?            ? bar

Unter Linux und BSD lsist es möglich, zu erkennen, dass es sich um ein Verzeichnis aus dem d_typeFeld desVerzeichniseintrag, aber nicht viel mehr.

Das kann auch in anderen Situationen passieren, in denen lsnicht auf den eigentlichen Inode zugegriffen werden kann, sondern nur auf den Verzeichniseintrag, der darauf verweist (z. B. wenn der Datei- oder Verzeichnis-Inode verschwunden ist, bevor darauf lszugegriffen werden konnte stat()- sieheDasoder wenn es sich um einen unzugänglichen Einhängepunkt handelt - sieheDas).

verwandte Informationen