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 |