내가 읽고이것그리고이것, 내 문제가 다르고 더 구체적이라는 것을 발견했습니다.
나의 이해는 다음과 같습니다.
- 디렉토리의 +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
내 유닉스 배포판은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