길에 있는 점들은 무엇을 의미하나요? [복사]

길에 있는 점들은 무엇을 의미하나요? [복사]

얼마나 "/a/./b/../../c/"평등합니까 /c?

Stack Exchange 사이트 중 하나에서 이 질문을 보았습니다. 분명히 ..스택(?)을 터뜨리는 것을 의미합니다. 왜 그럴까요?

답변1

루트가 다음과 같다고 가정해 보겠습니다.

/a/b
/c

이것을 구성 요소로 나누어 보겠습니다.
/-> 루트
/a-> (a)에서
.-> 이 디렉토리 경로
/a/./-> 여전히 /a
/a/./b->에서 /a/b
..-> 한 수준 "위로" 이동
/a/./b/..-> /a/b/..-> /a
/a/./b/../..-> /a/..-> /
/a/./b/../../c->/c

답변2

*nix 세계에서 모든 디렉토리는 상위 디렉토리의 하위 디렉토리입니다. 각 디렉토리에는 자신을 참조하는 암시적 "."과 상위 디렉토리를 참조하는 암시적인 ".."가 있습니다. 따라서 특정 디렉토리에 있고디렉토리 변경( cd) 도착하다'. '("$"로 시작하는 명령은 명령줄에서 실행할 수 있습니다!) 동일한 디렉터리에 유지됩니다.

$ pwd
/tmp/a/b
$ cd .
$ pwd
/tmp/a/b

그러나 디렉토리를 ".."로 변경하면 조금 더 올라갑니다.

$ cd ..
$ pwd
/tmp/a

디렉토리를 ".."로 변경하고 다시 위로 이동합니다.

$ cd ..
$ pwd
/tmp

이 규칙의 유일한 예외는 디렉토리입니다.루트 디렉토리, 상위 디렉터리가 없습니다.

$ cd ..
$ pwd
/
$ cd ..
$ pwd
/

확인하다이 튜토리얼에서는 Unix 디렉토리를 소개합니다.자세한 내용은.

답변3

/는 루트 디렉터리입니다. 디렉토리 구조는 다음과 같습니다.

/ 
___ /c
___ /a
______/b (child dir of a)
___ /other dirs

이제 요점입니다. 동일한 디렉터리를 나타내고, 이중 점(..)은 상위 디렉터리를 나타냅니다.

따라서 귀하의 예에서 경로에 .를 사용하면 동일한 디렉토리에 유지되고 ..를 사용하면 상위 디렉토리로 다시 이동합니다. 그래서 결국 점프하여 루트 디렉터리(/)에 도달하므로 /c와 동일합니다.

관련 정보