점(..)이 정확히 무엇인가요? 심볼릭 링크와 다르게 동작하는 이유는 무엇입니까?

점(..)이 정확히 무엇인가요? 심볼릭 링크와 다르게 동작하는 이유는 무엇입니까?

..(이중점)의 본질을 이해하려고 노력하고 있습니다 . 어떻게 접근하느냐에 따라 다른 타겟을 가리키는 것 같습니다.

예:-

    /outer/
        middle/
            inner/
        inner --> ./middle/inner/

이제 /outer/middle/inner/..결과는 /outer/middle/이지만 심볼릭 링크를 통해 액세스 /outer/inner/..하면 /outer/. 여기에는 두 가지 차이점이 있는 것 같습니다 ...

정확히 무엇입니까 ..? 심볼릭 링크? 하드 링크? 아니면 디렉터리에 접근할 때 경로를 기반으로 동적으로 생성되나요? 아니면 심볼릭 링크에 대한 나의 이해가 잘못되었을 수도 있습니다.

편집하다:

기타 관련 관찰

    /outer/
        middle/
            file
            inner/
               f --> ./../file
        inner --> ./middle/inner/

이제 파일을 통해 파일에 액세스하려고 하면 /outer/inner/f작동합니다. 하지만 /outer/inner/../file파일을 가리키지 않기 때문에 그렇게 해서는 안 됩니다 . 파일은 에 있습니다 /outer/middle/inner/... 이는 위의 동작과 모순되는 것 같습니다! ?

답변1

..하드 링크디렉토리 항목의 일부로 생성된 상위 디렉토리로 이동합니다.

각 디렉토리에서 질문을 발행 하면 ls -ail모두 동일한 inode(첫 번째 필드) 및 하드 링크 수(세 번째 필드)를 가진 다음 항목이 표시되어야 합니다.

  • ..ls -ail에서 실행될 때inner
  • .ls -ail에서 실행될 때middle
  • middlels -ail에서 실행될 때outer

이제 /outer/middle/inner/..는 /outer/middle/로 연결되지만, 심볼릭 링크를 통해 액세스하면 /outer/inner/..는 /outer/로 연결됩니다. 여기에는 두 가지 다른 것이 있는 것 같습니다...

..에 항목이 있습니다 inner. 현재 작업 디렉터리가 다음과 같은 경우 outer동일한 결과(디렉터리 목록 middle) 가 표시되어야 합니다.

  • ls -al inner/..
  • ls -al middle/inner/..

..심볼릭 링크를 통한 "액세스"가 다른 동작을 제공해야 하는 유일한 경우는 심볼릭 링크를 cd사용하는 경우입니다.inner논리작업 디렉토리( pwd -L)가 귀하의 디렉토리와 다릅니다.물리적작품 목록( pwd -P). 이 경우에는 다음 cd ..위치로 돌아가게 됩니다.outer 아니요다른 ..항목이 있지만 쉘이논리..작업 디렉토리를 표시하고 참조 대신 한 수준 위로 팝업합니다 inner.

bash이는 내장 명령의 일부로 제공 cd되는 편의 입니다. 실제 항목으로 변경하도록 요청하여 ..재정의 할 수 있습니다.

cd -P ..

여기서 -P지시문 cd( pwd위와 동일)은 실제 경로를 사용합니다.

관련 정보