Was ist der Grund dafür, dass ls -l
im folgenden Formular eine Liste mit Unterverzeichnissen zurückgegeben wird?
d????????? ? ? ? ? ? Subdirectory
Ein tree
Aufruf in diesem Verzeichnis gibt 0 directories, 0 files
beispielsweise 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 ls
ist es möglich, zu erkennen, dass es sich um ein Verzeichnis aus dem d_type
Feld desVerzeichniseintrag, aber nicht viel mehr.
Das kann auch in anderen Situationen passieren, in denen ls
nicht 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 ls
zugegriffen werden konnte stat()
- sieheDasoder wenn es sich um einen unzugänglichen Einhängepunkt handelt - sieheDas).