cd와 ls는 디렉토리에 대한 소프트 링크 내부에서 다르게 동작합니다.

cd와 ls는 디렉토리에 대한 소프트 링크 내부에서 다르게 동작합니다.

소프트 링크를 통해 디렉토리에 CD를 넣으면 다음과 같은 결과가 나타납니다.

  1. ls ..링크된 디렉터리의 상위 디렉터리 내용이 표시되고, cd ..소프트 링크의 상위 디렉터리 내용이 표시됩니다. 왜 다른가요?

  2. cd ..다음 탭은 완료 옵션을 제공하지 않으며 링크된 디렉토리의 상위 디렉토리 내용이나 소프트 링크의 상위 디렉토리 내용도 제공하지 않습니다. 왜 그럴까요?

  3. 위의 경우 모든 디렉토리 명령 중 어떤 명령이 연결된 디렉토리나 해당 소프트 링크에 ​​적용되는지 어떻게 알 수 있습니까?

답변1

왜냐하면 bash(및 아마도 다른 쉘)는 역추적을 하강처럼 보이게 만들기 위해 심볼릭 링크를 포함하여 하강 경로를 추적하기 때문입니다.

cdBash는 작업 디렉토리 가 내장 쉘이어야 하기 때문에 작업 디렉토리에 어떻게 접근했는지 알고 있습니다 . ls ..쉘을 실행할 때 "기호 경로" grep ..는 유효하고 번역이 ..매우 혼란스럽기 때문에 바꿀 수 없습니다.

사실, 쉘에는 현재 두 가지 해석이 있는데, ..둘 다 전혀 도움이 되지 않는 것처럼 혼란스럽습니다.

관련 정보