예를 들어 다음과 같은 디렉터리 구조가 있습니다.
$ \ls -F
dir/ lnk@
$ \ls -F dir
FILE
$ \ls -l lnk
lrwxrwxrwx 1 user group d Mon hh:mm lnk -> dir
내 ls
명령에는 별칭이 있습니다. 나는 \ls
표준 동작을 얻기 위해 사용합니다.
문제는
-F
with 옵션을 사용할 때 ls
심볼릭 링크 이름 뒤에 슬래시를 추가하면 동작에 영향을 미치는 이유는 무엇입니까 ls
?
$ \ls -F lnk
lnk@
\ls -F lnk/
FILE
그렇지 않은 경우 /
심볼릭 링크 자체는 @
표시기/플래그/분류자와 함께 나열 되며 /
심볼릭 링크가 참조하는 디렉터리의 파일은 표시기와 함께 나열됩니다( FILE
일반 파일).
옵션이 없는 동작을 일관적이라고 하는지 아니면 일관되지 않다고 하는지 잘 모르겠습니다.
$ \ls lnk
FILE
\ls lnk/
FILE
에서 이에 대한 설명을 찾지 못했습니다 man ls
.
비슷한 게시물
인용하다
IEEE 및 오픈 그룹(2004) "경로 이름 확인"섹션 4.11존재하다Open Group 기본 사양 6호
IEEE 및 오픈 그룹(2018a) "경로 이름 확인"섹션 4.13존재하다Open Group 기본 사양 7호
IEEE 및 오픈 그룹(2018b)"엘에스"
답변1
즉, lnk
와 lnk/
다른 파일을 참조하기 때문입니다.
긴 대답
IEEE 및 The Open Group(2018a)을 검토한 후 내 질문이 경로 이름 확인을 오해한 것 같습니다. 특히: 1) 따라서 다른 파일 이름을 지정하는 것과 lnk/
동일합니다 .lnk/.
lnk
lnk/
경로 이름 확인 중에 기호 링크가 발견되면 경로 이름 구성 요소가 경로 이름 끝에 있는지 여부와 수행 중인 기능에 따라 동작이 달라집니다.
\ls -F lnk
매뉴얼 페이지에서는 동작을 찾거나 지정하지 않았지만 \ls lnk
IEEE 및 Open Group(2018b)에서는 찾았습니다.
-d, -F 또는 -l 옵션 중 하나 이상이 지정되고 -H 및 -L 옵션이 지정되지 않은 경우 명명된 디렉토리 기호 링크 유형 파일의 각 피연산자에 대해 ls는 다음의 이름을 써야 합니다. 파일과 요청된 관련 정보. -d, -F 또는 -l 옵션이 지정되지 않거나 -H 또는 -L 옵션이 지정된 경우 디렉토리 기호 링크 유형 파일의 이름을 지정하는 각 피연산자에 대해 ls는 디렉토리에 포함된 파일 이름을 작성해야 하며 모든 요청 관련 정보.
답변2
공식적인 답변은 모르지만 다음과 같습니다.
- 이 디렉토리에는 "lnk"라는 이름이 있습니다. 그게 뭔지 모르겠어요.
ls -F lnk
- 이름의 유형을 표시합니다.ls -F lnk/
- 다음은 유형 태그와 함께 지정된 경로 아래의 모든 파일을 표시하는 경로입니다.ls lnk/
- 지정된 경로 아래의 모든 파일을 표시하는 경로는 다음과 같습니다.ls lnk
- 운영 체제가 파일이 무엇인지 판단하고 가장 논리적인 정보를 표시하도록 요청합니다.
참고: 이 경우 링크인지 여부는 상관하지 않습니다. 나는 "이름"과 "경로"만 고려합니다.