끄적끄적 아무기록

리눅스 심볼릭 링크와 하드 링크 (Linux Symbolic & Hard Link)

by 현생사는갓생지망생
반응형

심볼릭링크와 하드링크

 

 

링크란?

하나의 특정 파일 또는 디렉토리에 접근을 쉽게 할 수 있도록 하는 방법

i-node ?

실제 데이터가 어디에 존재하는지 알려준다. 실제 데이터와 파일 이름을 연결해주는 역할

 

이해를 쉽게 하기 위해 실습을 먼저 해보자.

먼저, 원본파일(Original File)을 하나 만들어본다.

 

ls -ial 명령어로 봤을 때 가장 앞에 보이는 숫자가 i-node 숫자이다.

cp -a 로 복사했지만 i-node 가 다른 것을 보아 완벽히 같은 파일은 아니다.

 

하드링크 > ln [링크 원본파일] [생성할 링크 파일명]

하드링크는 완벽하게 똑같은 파일을 생성한다.

같은 아이노드넘버로 원본파일을 가리키게 된다.

 

cat >> 명령어로 생성된 하드링크파일에 데이터를 추가해보면

원본파일의 용량도 같이 증가한 것을 확인할 수 있다.

 

만약 원본파일을 삭제해도,

데이터와 아이노드넘버가 삭제되는 것은 아니기 때문에 하드링크파일이 원본데이터를 찾아갈 수 있다.

 

심볼릭링크 > ln -s [링크 원본파일] [생성할 링크 파일명]

심볼릭링크는 새로운 아이노드 넘버로 생성된다.

ls -ial 명령어로 확인했을 때 위와 같이 나온다면 링크가 잘 걸린 것이다.

 

i-node(1310743) > Original File Pointer > Original File(babo2.txt) > i-node(1310741) > Original Data

 

만약 원본파일인 babo2.txt를 삭제한다면

위와 같이 빨간색으로 깜빡거리며 링크가 손상되었다는 것을 알려준다.

 

cat > babo2.txt

다시 원본파일을 생성해준다면 문제없이 링크가 생성된다 !

 

Symbolic Link

- 새로운 i-node 생성

- 원본파일 삭제 시 링크가 끊긴다.

- 다른 파일시스템에서도 사용 가능하다.

 

Hard Link

- 동일한 i-node 사용

- 원본파일 수정 시 하드링크파일도 같이 수정된다.

- 원본파일을 삭제해도 남아 있다.

- 동일 파일시스템에서만 사용 가능하다.

- 하드링크의 단점을 보완한 것이 심볼릭링크

 

문제 !!

1.

현재 여러분은 /a/b 디렉토리에 있습니다.
/a/b/c/test.txt 파일 생성합니다.
심볼릭링크 작성 합니다.
/a/b/c/test.txt 파일을 /a/test1.txt 로 단 절대경로 사용금지, 상대경로로만 작성하세요.

=>

mkdir -p /a/b/c

cd /a/b

touch c/test.txt

ln -s b/c/test.txt ../test1.txt

주의할 점 !!

[생성할 링크 파일명]을 먼저 작성해준다. (현재 자신의 위치 기준 상대경로)

[링크 원본파일] 은 '생성할 링크 파일'의 위치 기준 상대경로

 

2.

/1/2/3/4/5 디렉토리 생성
/1/2/3/4/a.txt 파일 생성
여러분은 /1/2/3디렉토리에 있습니다.
심볼릭 링크 생성 /1/b.txt 단 상대 경로로만 작성을 합니다.

=>

mkdir -p /1/2/3/4/5

touch /1/2/3/4/a.txt

cd /1/2/3

ln -s 2/3/4/a.txt ../../b.txt

반응형

블로그의 정보

현생이네

현생사는갓생지망생

활동하기