ディレクトリ権限がrの場合、lsが-lなしで1を返すのはなぜですか?

ディレクトリ権限がrの場合、lsが-lなしで1を返すのはなぜですか?

私が読んでこれそしてこれ、私の問題が異なっていてより具体的であることがわかりました。

私の理解は次のとおりです。

  • ディレクトリの+xは、この特定のディレクトリを介してファイルinodeへのアクセスを許可します。
  • 使用しているファイルのメタ情報はls -liノードに保存されていますが、ファイル名はそのファイルに属していません。

上記の2つの点で、存在しない場合はlsディレクトリ-l内のファイルのiノードにアクセスする必要がないため、ファイル名を正常にリストして0を返す必要があります。

しかし、私のコンピュータで試してみると、ファイル名が一覧表示されますが、いくつかの警告が表示され、permission denied戻りコードは1です。

b03705028@linux7 [~/test] chmod 500 permission/
b03705028@linux7 [~/test] ls --color=no permission/
f1*
b03705028@linux7 [~/test] chmod 400 permission/
b03705028@linux7 [~/test] ls --color=no permission/
ls: 無法存取 'permission/f1': 拒絕不符權限的操作
f1
b03705028@linux7 [~/test] echo $0
bash

漢字は基本的に次のように言います。permission denied

私のUnixディストリビューションはLinux 4.17.11-arch1

ベストアンサー1

lsあなたの場合は同様のエイリアスのようですls --color=auto。この場合、ls使用する色を決定するためにディレクトリに含まれるファイルに関する情報を見つけてください。

ls --color=no

ディレクトリは文句なしにリストする必要があります。

それでも問題が発生する場合は、ファイルメタデータ(/ viewfiletypeなど)にアクセスする必要がある-Fか、他のオプションを使用している可能性があります。--classify-F--classify

エイリアシングなしで実行されていることを確認するには、ls次のいずれかの方法を使用します。

command ls

または

\ls

エイリアスを削除するには、ls次を使用します。

unalias ls

おすすめ記事