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


15

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

예:-

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


심볼릭 링크는 바로 가기가 아닙니다. 그들은 더 포인터와 같습니다.
wizzwizz4

답변:


35

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

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위와 같이) 지시 합니다.


아하, 혼란은 사용 cd하여 확인합니다. 따라서 내가 틀렸다면 정정하십시오. ..항상 실제 부모를 가리 킵니다. 심볼릭 링크를 사용 ..하면 실제 (물리적) 부모로 연결됩니다. 혼란 cd은 디렉토리에 들어가는 경우에만 발생 합니다.
user98456

이것은 또한 초의 행동을 설명합니다. 대단히 감사합니다.
user98456

3
@Theophrastus 는 루트 디렉토리 자체를 ls -lai나타냅니다 /..(일명 /. 또는 /). 파일 시스템이 손상되지 않는 한 다른 경우는 없어야합니다 . == ... fs가 어딘가에 마운트 된 경우에도 ..(임시) 부모 의 정확한 정보 를 얻습니다 (따라서 거기에는 약간의 마술이 ..있으며 파일 시스템 테이블에 단순한 정적 항목이 아닙니다).
AnoE
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.