파일 경로 (절대/정규/상대/부모)

동동주·2025년 11월 25일

기본 개념

목록 보기
1/1

심볼릭 링크 = 파일을 가리키는 링크

원본 파일 : /home/user/original.txt
심볼릭 링크 : /home/user/link.txt

link.txt는 실제 파일이 아닌 참조링크 (= 바로가기 같은 것?)
참고 : 심볼릭 링크 알아보기 ( Symbolic Link )

+경로에 점(., ..)이나 심볼릭 링크가 없으면 → 절대경로 = 정규경로


  • OS별 경로 표시 다름
    리눅스/맥 : /home/user/docs/report.txt
    윈도우 : C:\Users\User\docs\report.txt


정규경로

: 실제 파일 시스템에서 해석된 유일한 경로
(오직 하나, 기호와 링크도 실제 위치로 해석)

/shortcut/data.txt 경로가 있고,
shortcut → /real/data.txt로 연결된 경우
/real/data.txt 처럼 링크를 해석해서 언제나 동일한 경로가 나오는 것


절대경로

: 루트부터 전부 명시한 경로
위의 정규경로에서 적은 것처럼 링크가 존재하는 경우,
/home/user/real/data.txt
/home/user/link/data.txt
둘 다 같은 경로이지만, 개별적인 절대 경로로 존재할 수 있다.


상대경로

: '현재 위치를 기준'으로 본 해당 위치(파일)까지의 경로
(실행 위치에 따라 달라짐)

.으로 현재 위치를, ..으로 상위 디렉토리를 나타내는 등
상대적인 위치를 사용하여 간결하게 표현

/home/user/real/data.txt 인 경우 :

현재 위치상대경로표현설명
/home/user/realdata.txt (= ./data.txt)바로 접근 가능
/home/user/real/data.txtuser 폴더 안 real/data.txt
/home/user/real/data.txthome 폴더 안 user/real/data.txt
/home/user/another../real/data.txt한 단계 위(=user)로 올라가서 real 폴더 접근

( ./ 부분은 현재 위치니까 작성해도, 안해도 동일 )


부모경로

: 파일의 한 단계 위 상위폴더

/home/user/docs/file.txt 에 있는 경우 (리눅스식
부모경로 : /home/user/docs
한 단계 위 부모경로 : /home/user


java 예시 :

Path p = Paths.get("/home/user/docs/file.txt");
p.getParent();    // /home/user/docs, 부모경로
p.getParent().getParent(); // /home/user, 한 단계 위 부모 경로



절대경로 vs 정규경로 출력 비교

  • <절대경로 ≠ 정규경로 인 경우>
1. 상대경로(getPath): .\week11\P1\FileTest.java
2. 절대경로(getAbsolutePath): E:\JWorks\IntelliJ\CP2\.\week11\P1\FileTest.java
3. 정규경로(getCanonicalPath): E:\JWorks\IntelliJ\CP2\week11\P1\FileTest.java
  • <절대경로 = 정규경로 인 경우>
1. 상대경로(getPath): week11\P1\FileTest.java
2. 절대경로(getAbsolutePath): E:\JWorks\IntelliJ\CP2\week11\P1\FileTest.java 
// 경로에 . 같은 게 없어서 절대경로 = 정규경로
3. 정규경로(getCanonicalPath): E:\JWorks\IntelliJ\CP2\week11\P1\FileTest.java
profile
배운 내용 정리&기록, 스크랩

0개의 댓글