2012-08-23 6 views
48

그것은 이론적 인 질문입니다. 나는 만족스런 운이없는 인터넷을 검색했다. 나는이 전문 용어가 무엇인지 이해하기를 원한다. 자바, JSON 등의 예제를 보았습니다.하지만 Google이나 StackOverflow에서는 간단한 설명, 코드가 필요하지 않습니다. = P"표준 경로"란 무엇입니까?

따라서 절대 경로는 특정 파일을 가져 오는 방법입니다. 또는 전체 경로를 설명하는 위치, 전체 경로 및 OS에 따라 다릅니다 (예 : Windows 및 Linux의 절대 경로는 다릅니다) 상대 경로는 현재 위치에서 설명하는 파일 또는 위치에 대한 경로입니다. . (두 개의 점)는 디렉토리 트리에서 상위 수준을 나타냅니다. 그것은 몇 년 동안 나에게는 분명했습니다.

검색 할 때 나는 정규화 된 파일도 보았습니다! CANONICAL이란 "규칙에 따라"또는 뭔가를 의미합니다.

누군가 제발 정식 재료에 대한 이론의 열을 내게 가르쳐 주시겠습니까? =) 감사합니다 !!

PD, 나는 대부분의 개념을 이해하고 나를 도와 준 하나에 준 XD

PD2는 슬프게도 나는 모든 사람에게 답을 줄 수 없다 (그래서 그 결국 그냥 우분투 임의의 이름이 아니었다) 하지만 모두에게 고맙다 =)

+5

"SO"는 "OS"를 의미합니까? 당신은 프랑스 인입니까? –

+0

"Système d' exploitation"예 프랑스어를 알고 있지만 운영체제 (미안하지만 잘못 입력했습니다) 운영체제 ... 저는 사실 멕시코 사람입니다 xD – Metafaniel

+4

아, "Sistema de la operación, olé!" (그런데 그것은 "운영체제"입니다.) –

답변

62

의 모든 점 "canonical"은 두 가지를 비교할 수 있도록되어 있습니다. 예를 들어 ../../here/bar/x./test/../../bar/x은 모두 같은 위치를 참조 할 수 있지만 두 경로에서 텍스트 비교를 수행 할 수는 없습니다. 그러나 표준 표현으로 변환하면 둘 다 ../bar/x이되며 실제로는 동일한 것을 참조합니다. 한마디로

, 그것은 종종 당신이 한 가지를 참조 많은 방법을 가지고있는 경우이며,이 경우에 당신은 정규 표현 독특한입니다을 정의 할 수 있어야하고, 당신이 얻을 수있는 수 그런 일에 대한 열 ­을 처리하십시오.

(당신이 더 많은 예제를 찾고 있다면, 수학의 모든 객체의 모든 종류에 대한 "표준"구조물의 전체, 그리고 마음에 같은 목적을 가진 매우이다. 어쩌면이 Wikipedia article가 제공 할 수있는 몇 가지 광고 ­ 추가 정 방향)

+1

이제 알겠습니다. 즉, 정규식은 고유해야하므로 상대적으로 사용하지 않는 완전한 경로입니다. 두 점. 오오! 귀하의 답변은 도움이되었다;) 감사합니다 – Metafaniel

+0

@ Metaphaniel : 예, 중요한 부분은 고유성입니다. 표준 적 상대 경로와 표준 절대 경로를 모두 가질 수 있다고 생각하지만, 그것은 별개의 구분입니다. –

+0

그 주석까지 모두 좋았습니다. xDO 이해했습니다. 그러나 ... 정식 상대 경로입니까? 내가 지금까지 (모든 사람들에게 감사) 이해했듯이, 표준 경로는 본질적으로 절대적입니다. 정경 상대 경로에 대해 나에게 무엇을 말해 줄 수 있습니까? = S THANKS =) – Metafaniel

9

정규 경로를 정의하는 좋은 방법은 the shortest absolute path (줄임말의 의미로 짧음)입니다.

절대 경로 정식 경로 간의 차이의 예이다 :

절대 경로 : C:\abc\..\abc\file.txt
정식 경로 : C:\abc\file.txt

+0

@KerrekSB에 따르면 경로는 정규적으로는 고유해야하므로 예제에서 볼 수 있습니다. C : \ abc \ file.txt를 나타내는 다른 방법은 없습니다 = 예 : = – Metafaniel

+0

예. 'canonical path '를 최단 절대 경로 (짧음, 문자열 길이의 의미)로 정의합니다. 나는 대답에 그것을 추가 할 것이다. – alfasin

+0

아 좋아, 고마워, 지금은 분명해;) – Metafaniel

6
정식 경로가 무엇

(또는 절대로부터 차분 경로)은 시스템에 따라 다릅니다.
일반적으로 (전체) 경로에 별칭, 바로 가기 또는 기호 링크가 포함 된 경우 정규 경로는 모든 경로를 참조하는 실제 디렉토리로 해석합니다.
예 : /bin/a이 sym 링크 인 경우 어디에서나 절대 경로를 요청할 수 있습니다. 예 : 실제 파일 (즉, 링크의 실제 타겟), 즉 usr/local/bin/a은 표준 경로로 반환됩니다. 예를 들어, java.io.File#getAbsolutePath에서.java.io.File#getCanonicalPath

+0

나를 이해하는 데 도움이되는 매우 유용한 의견! 나는 지금 sym 링크에 대해서 생각조차하지 않았다! 그래서 sym 링크는 절대적이지만 표준이 아닙니다 ... 매우 포괄적입니다. 그러나 나는 새로운 의문을 가지고 있습니다 ... 하드 링크는 어떨까요? 그들은 절대적으로 충분하지 않습니까? 고맙습니다 – Metafaniel

+0

Depends.For 예를 들어 java.io.File # getCanonicalPath는 하드 링크를 해결하지 않습니다 – Cratylus

+0

나는 자바에서 그렇게 많이 개발하지 못했고, 나는 주로 PHP 녀석입니다.) => – Metafaniel

1

정식 경로와 관련된 대부분의 문제는 파일이 아닌 디렉터리의 이름을 전달할 때 발생합니다. 파일의 경우, 정규 경로이기도 한 절대 경로를 제공하고 있습니다. 그러나 dir의 경우 마지막 "/"을 생략한다는 의미입니다. 예를 들어 "/ var/tmp/foo"는 정규 경로이지만 "/ var/tmp/foo /"는 그렇지 않습니다.

관련 문제