상세 컨텐츠

본문 제목

[Linux] 하드 링크, 소프트 링크

운영체제/Linux

by 밍구21 2020. 5. 26. 17:32

본문

부족한 점 있으면 댓글 달아주세요.

 

 

//하드링크 정의

-원본 파일과 동일한 아이노드를 공유하는 파일

-원본파일을 삭제해도 하드링크가 원본 파일의 아이노드를 가지고 있기 때문에 하드 링크에는 문제가 없다.

-하드 링크를 수정하면 원본 파일도 수정된다.

-하드링크를 사용하면 원본 파일 개념이 사라지게 된다. →하드링크와 원본파일이 동일시됨

-동일한 파일 시스템 내에서 사용 가능

 

 


//하드링크 명령어 - ln 원본파일명 하드파일명

 

 

 

다음은 abc.txt라는 원본 파일에 hd.txt라는 하드파일을 만드는 명령어이다.

 

 

 

생성 이후 ls -li를 통해 두 파일이 같은 아이노드 번호를 공유한다는 것을 알 수 있다.

참고로 ls -li에서 i는 아이노드 정보를 볼 수 있는 옵션이다.

 

 

 

 

위 사진은 하드링크를 생성하기 전 원본 파일 abc.txt의 정보로 링크수가 1임을 알 수 있다.

 

따라서 하드 링크를 생성하면 원본 파일의 링크수가 1 커짐을 알 수 있다.

 


//심볼릭링크 정의

 

-원본 파일의 경로(이름)가 저장된 데이터 파일

-소프트 링크라고도 불린다

-원본과 아이노드 번호가 다르다.

-원본 파일이 삭제되면 심볼릭 링크는 작동하지 않는다.

-원본 파일의 이름을 저장하기 때문에 원본 파일 삭제 시 동명의 파일이 있으면 그 링크를 가리킨다.

 


 

//심볼릭링크 명령어ln -s 원본파일명 심볼릭 링크파일명

 

 

 

다음은 /study디렉토리에 touch명령어를 사용해 bcd.txt라는 원본 파일을 만든 후

ln -s 명령어를 사용하여 원본 파일 bcd.txt의 심볼링 링크 파일인 ls.bcd를 만들었다.

 

ls -li를 사용해 study 하위 파일들의 정보를 보면

 

 

심볼릭 링크만 연결된 원본 파일인 bcd.txt는 링크수가 1이고 아이노드 번호는 26384이다.

 

 

원본 파일 bcd.txt의 심볼릭 링크 파일인 ls.bcd는 링크수가 1이고 아이노드 번호는 26437이다.

 

따라서 심볼릭 링크를 생성해도 원본 파일의 링크 수에는 영향을 미치지 않고 아이노드 번호 또한 원본 파일의 아이노드 번호와 다름을 알 수 있다.

관련글 더보기