태그 보관물: filesystems

filesystems

도트 도트 (..) 란 정확히 무엇입니까? 심볼릭 링크와 동작이 다른 이유는 무엇입니까? /outer/

..(더블 도트) 의 본질을 이해하려고합니다 . 액세스 방법에 따라 다른 대상을 가리키는 것 같습니다.

예:-

    /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/..있습니다. 이것은 위의 동작과 모순되는 것 같습니다!?



답변

..디렉토리 항목의 일부로 작성된 상위 디렉토리에 대한 하드 링크 입니다.

ls -ail이러한 각 디렉토리에서 발행 하면 다음 항목이 모두 동일한 inode(첫 번째 필드) 하드 링크 수 (세 번째 필드) 임을 알 수 있습니다.

  • ..실행시 ls -ailinner
  • .실행시 ls -ailmiddle
  • middle실행시 ls -ailouter

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

에 하나의 ..항목이 inner있습니다. 현재 작업 디렉토리가 outer인 경우와 동일한 결과 (디렉토리 목록 middle)가 표시됩니다.

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

..기호 링크를 통한 “액세스” 가 다른 동작을 제공해야하는 유일한 상황 은 기호 링크 cdinner사용하는 경우 논리 작업 디렉토리 ( pwd -L)가 실제 작업 디렉토리 ( pwd -P) 와 다른 경우입니다 . 이 경우, cd ..후면에 당신을 데려 갈 것이다 outer 없는 다른이 있기 때문에 ..쉘이 추적 유지되기 때문에 항목이 있지만, 논리적 작업 디렉토리를 한 수준 밖으로 터지는 것이 아니라 실제 참조 ..에서 항목을 inner.

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

cd -P ..

여기서 물리적 경로를 사용 -P하도록 cd( pwd위와 같이) 지시 합니다.


답변