I-node

 

리눅스는 파일이나 디렉터리를 생성할 때 I-node 라는 번호를 임의로 부여함.

이 I-node 를 기준으로 파일, 디렉터리를 관리.

 

I-node는 리눅스/유닉스 파일 시스템에서 사용하는 자료구조를 의미함.

I-node 에는 해당 파일의 소유권, 허가권, 파일 종류, 그리고 실제 데이터 위치(address) 값이 있음.

I-node 가 같다면, 이름이 다르더라도 실질적으로 같은 파일로 인식됨.

I-node 는 'ls -i' 명령으로 확인 가능.

 

 

soft link (symbolic link)

 

원본 dir A 가 있다고 하자.

I-node 가 다른 file B를 생성한 후, B 의 내용을 A 로 가는 포인터로 만들면 B는 A의 soft link 가 됨.

soft link 는 file , dir 을 대상으로 생성 가능.

 

특징 : 

A 와 B 는 I-node 가 다르므로, 둘은 서로 다른 dir.

A 를 삭제하면 B 는 포인터(A)를 잃게되므로 B 는 아무 기능을 못하게 됨.

A 를 수정하면 A 를 가리키는 B 역시 수정된 내용을 바라봄.

B 를 삭제한다고 해서 A 가 삭제되지 않음.

B 를 수정하면 B가 가리키는 A 역시 수정됨.

생성된 B 의 permission 은 777이지만, 원본 A 와는 무관.

soft link 는 ls -l 명령 결과값에, 'l'이라고 표시된다(권한 영역 바로 앞에 'l' 이라고 표시)

 

soft link 는 dir 의 경로를 단축시키고 싶을 때 주로 사용

 

$ ln -s /foo/var symbolic_link

  : /foo/var 로 향하는 symbolic_link 파일을 현재 dir 에 생성


$ ln -s test.log symbolic_link 
  : test.log 로 향하는 symbolic_link 파일을 현재 dir 에 생성

 

 

hard link

 

원본 file A 가 있다고 하자.

이름은 다르지만 I-node 는 같은 file B 를 생성하면 B 는 A 의 hard link 가 됨.

hard link 는 file 을 대상으로만 생성 가능.

 

특징 : 

A 와 B 는 I-node 가 같으므로, 둘은 서로 같은 file.

A 를 삭제해도 B 가 I-node 를 갖고 있으므로 실질적인 파일 내용은 삭제되지 않음.

A 를 수정하면 같은 I-node 를 갖는 B 역시 수정된 내용을 바라봄.

B 를 삭제해도 A 가 I-node 를 갖고 있으므로 실질적인 파일 내용은 삭제되지 않음.

B 를 수정하면 같은 I-node 를 갖는 A 역시 수정된 내용을 바라봄.

 

hard link 는 보안을 위해 사용하는 경우가 있다고 함.

예를 들어 중요한 A 파일을 다른 사용자와 공유해야 할 때 

원본을 주지 않고 A 파일의 hard link 인 B 를 대신 공유.

 

$ ln test.log hard_link
  : test.log 를 바라보는(test.log 의 I-node 와 같은 I-node 를 갖는) 하드링크 hard_link 파일을 현재 디렉터리에 생성

 

 

 

그림과 함께 자세한 설명은 아래 링크 참고

https://jhnyang.tistory.com/269

 

 

'Linux' 카테고리의 다른 글

[Linux] disk auota 짧은 설명  (0) 2021.07.11
[Linux] redhat 계열 yum 관련 명령어 모음  (0) 2021.07.07
[Linux] 쉘 스크립트 매개변수  (0) 2021.07.05
[Linux] history 팁  (0) 2021.07.05
[Linux] /etc/passwd 설명  (0) 2021.07.04

+ Recent posts