절대/정규/상대 경로의 차이점은 무엇입니까?
절대값은 /
. 포함될 수 있나요 /../
?
표준 경로는 를 포함할 수 없다는 점에서 절대 경로와 다르지 않습니까 /../
?
foo
상대 경로 인가요 ?
인터넷 검색에서는 posix canonical path
많은 결과가 나오지 않았습니다. 이 용어에 대한 POSIX 참조는 무엇입니까?
답변1
POSIX정의"절대 경로 이름"은 다음과 같습니다.
하나 또는 두 개 이상의 <slash> 문자로 시작하는 경로 이름
"상대 경로 이름"은 다음과 같습니다.
<슬래시> 문자로 시작하지 않는 경로 이름입니다.
이것이 상대 경로와 절대 경로의 전부입니다.
정식 경로는 POSIX에 정의되어 있지 않지만 이 용어는 일반적으로 비교 가능한 경로를 나타냅니다.즉파일 시스템 개체에 대한 두 개의 경로를 가져와 이를 표준 형식으로 변환하는 경우 두 파일 시스템 개체가 동일한 경우에만 결과가 동일해야 합니다. 언급했듯이 여기에는 ".."을 제거하는 작업이 포함되지만 심볼릭 링크를 해결하여 정식 경로를 다음과 같이 정의할 수도 있습니다.
"."를 제외하고 구성 요소가 모두 실제 디렉터리 또는 파일인 경로 이름입니다. 및 "..", 슬래시는 반복되지 않습니다.
POSIX 용어에서 정식 경로 이름은 실제로 다음과 같습니다.경로명 구문 분석(표준 경로 이름은 기존 파일 시스템 객체에 대해서만 결정될 수 있다는 점을 인정하는 한)
이는 하드 링크 디렉토리가 허용되지 않기 때문에 작동한다는 점에 유의하세요.
따라서 귀하의 질문에 대답하려면 다음을 수행하십시오.
- 절대 경로에는
/../
; 가 포함될 수 있습니다. - 표준 경로는
/../
,/./
,//
(첫 번째 위치 제외) 또는 기호 링크를 포함할 수 없습니다. foo
상대 경로입니다.
(현학적으로 말하면 모두 길이다.이름, 경로 뿐만이 아닙니다. )