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()
)。これ、またはアクセスできないマウントポイントの場合 - 参照これ)。