[리눅스] 심볼릭링크 하드링크 개념, 사용법

반응형

From Pixabay OpenClipart-Vectors's Image

-목차-

1. 링크

2. 심볼릭 링크(symbolic link)

3. 하드링크(hard link)

 

 

1. 링크

윈도우의 바로가기와 비슷한 기능입니다. 리눅스에서 링크 파일을 수정하면 원본 파일도 수정됩니다. 일반적으로 링크라고 하면 심볼릭링크를 의미합니다. 심볼릭 링크는 소프트 링크와 같은 의미입니다.

 

2. 심볼릭링크(symbolic link)

1) 사용법

ln -s [원본파일경로] [심볼릭링크 이름]

2) 특징

① 원본파일과 다른 inode를 갖습니다.

symbolic link 수정 시 원본 파일도 같이 수정됩니다.

원본 삭제시 symbolic link는 더 이상 사용할 수 없습니다.

 

예시)

'aaa test' 라고 써져있는 aaa파일이 있습니다.

aaa파일 내용보기

원본 파일을 절대 경로(/로 시작)로 써도 되고, 상대 경로(.으로 시작, 현재 디렉터리에 있는 경우 바로 이름으로 사용 가능)로 써도 됩니다.

ln -s 절대경로와 상대경로

ls에 i옵션을 주면 iNode를 볼 수 있습니다. (iNode란 파일 고유의 번호를 의미합니다.)

iNode 확인

심볼릭 링크는 맨 앞에 iNode가 서로 다른 것을 볼 수 있습니다. 즉, 서로 다른 파일로 구분됩니다. 하지만 이 중 한파일을 수정하면 다 같이 수정됩니다.

 

현재 디렉터리에 존재하는 모든 파일의 내용을 보겠습니다.

현재 디렉토리에 존재하는 파일 이름과 내용 함께보기

"add something" 이라는 문장을 aaa_symlink에 추가하고, 모든 파일을 보겠습니다.

add something 추가하고, 파일 이름과 내용 보기

모든 파일에 "add something"이 추가된 것을 볼 수 있습니다.

 

원본 파일을 삭제해보겠습니다.

원본파일 삭제

원본파일 aaa를 삭제하니 심볼릭 링크가 깨져 빨간색으로 표시되는 것을 볼 수 있습니다. 이 파일들은 더 이상 아무 내용을 담고 있지 않습니다.

 

3. 하드링크(hard link)

1) 사용법

ln [원본파일경로] [하드링크이름]

 

2) 특징

① symlink와 다르게, 원본 파일과 같은 inode를 갖습니다. 

② symlink와 같이 hard link도 수정 시, 원본 파일도 같이 수정됩니다.

symlink와 다르게, 원본 삭제시 hard link는 그대로 사용 가능합니다.

 

예시)

aaa파일을 다시 생성해보겠습니다.

aaa파일 다시생성, 하드링크 bravo 생성

aaa에 대한 하드 링크로 bravo를 생성했습니다.

aaa와 bravo의 iNode가 동일한 것을 볼 수 있습니다.

(또한, 깨졌던 심볼릭 링크가 다시 돌아온 것을 알 수 있습니다.)

 

aaa파일을 삭제하면 심볼릭 링크는 다시 깨집니다. 하지만 하드 링크인 bravo는 원래 내용을 그대로 갖고 있는 채로 살아있습니다.

원본파일 삭제시 하드링크 사용가능

 

링크는 보통 심볼릭 링크를 많이 이용합니다. 예를들어, 크기가 큰 파일을 다른 폴더에 복사해서 정제해야 하는데 복사하기에 크기가 부담될때 심볼릭링크를 사용하면 간편해집니다. 여러 폴더에 퍼져있는 파일들을 한 곳에 모아 작업을 할 때에도 경로만 알고 있으면 심볼릭 링크를 걸 수 있어 간편합니다.

반응형

댓글

Designed by JB FACTORY