/
디렉토리 에 있는 동안 ls -a
결과에는 다음이 포함됩니다 .
...
.
디렉토리 자체에 대한 포인터가 존재한다는 것을 이해할 수 있습니다 . 에 대한 상위 디렉토리가 없는데 디렉토리 ..
에 이 있다는 것은 무엇을 의미합니까 ?/
/
답변1
많은 소프트웨어는 가정에 따라 작동합니다.~ 아니다실제로 POSIX.1에 의해 보장되지만 전통적으로 UNIX 시스템의 경우이며 많은 UNIX 문헌에 명시되어 있습니다. (UNIX 문헌 중 하나를 인용하자면):
모든 디렉터리에는 파일 이름 dot 및 dot-dot(.
및..
)이 포함되어 있으며, 해당 inode 번호는 각각 디렉터리와 상위 디렉터리의 번호입니다.[…]프로그램은 및 루트 디렉토리가 파일 시스템의 루트 inode 번호를 갖도록mkfs
파일 시스템을 초기화합니다 ..
..
— 모리스 J. 바흐(1986).UNIX 운영 체제의 설계. 프렌티스 홀. 피. 73
예를 들어: 이전 getcwd()
라이브러리 함수(특별한 커널 지원을 제공하지 않는 시스템에서)는 이에 의존하여 다음을 수행합니다.언제 멈춰야 할지 알아라..
현재 디렉토리 이름을 구성할 때 항목 체인을 추적합니다 . 자신의 상위 디렉토리에 도달하거나 로 이동할 수 없으면 중지됩니다 ..
.
따라서 루트 디렉토리가 (또는 적어도 응용프로그램 모드 프로그램에 관한 한) 이유는 다음과 같습니다.나타납니다시스템 API를 통해 볼 수 있음) ..
항목은 많은 것들이 다음과 같은 가정을 기반으로 한다는 것입니다.모든디렉토리에는 ..
가 있으며 ..
루트에 있는 루프는 루트에 있는 것을 감지하는 데 사용될 수 있습니다.
POSIX.1은 실제로 루트 디렉토리에 가 있다는 것을 보장하지 않으며 ..
단지 다음을 지정합니다.프로그램은 다음과 같은 경우 루프 가능성을 고려해야 합니다...
루트 디렉토리에 있습니다 . 이는 UNIX가 아닌 시스템도 POSIX를 준수하도록 허용하기 위한 것입니다. 파일 시스템이 있습니다.결석of는 ..
디렉토리가 루트 디렉토리임을 나타냅니다. 그리고 Bach 자신이 논의한 것처럼 디렉토리가 있는 시스템이 있습니다.~ 위에POSIX.1이 다음으로 시작하는 절대 경로 이름에 대한 논의에서 허용하는 루트둘슬래시(Microsoft LAN 시스템에서 사용되는 범용 명명 규칙과 유사)
그러나 Linux(및 Ubuntu Linux)는 UNIX 패러다임을 더욱 엄격하게 보장합니다.
답변2
매우 간단하게: 파일 디렉토리를 통해 다음을 ./
의미합니다 .이 폴더, while은 다음을 ../
의미합니다.파일은 어디에 있나요?(예를 들어 내가 디렉토리에 있을 때 user/home/me/Desktop
는 ../
나를 로 데려올 것입니다 /user/home/me
).