/ 디렉토리에 ..이 있는 이유는 무엇이며 이는 무엇을 의미합니까?

/ 디렉토리에 ..이 있는 이유는 무엇이며 이는 무엇을 의미합니까?

/디렉토리 에 있는 동안 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).

관련 정보