私が読んでこれそしてこれ、私の問題が異なっていてより具体的であることがわかりました。
私の理解は次のとおりです。
- ディレクトリの+xは、この特定のディレクトリを介してファイルinodeへのアクセスを許可します。
- 使用しているファイルのメタ情報は
ls -l
iノードに保存されていますが、ファイル名はそのファイルに属していません。
上記の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