728x90
i-node
- 리눅스에서 파일은 파일명+inode+데이터 블록
으로 구성된다.
- 파일의 주소, 권한, 이름, 크기 등이 저장된 테이블
- 파일의 데이터에 접근 시 i-node 테이블에 접근하여 데이터 블록의 위치를 확인한다.
심볼릭 링크 Symbolic Link
ln -s [option] [origin file] [link file]
- 소프트 링크 Soft Link 라고도 한다.
- 윈도우의 바로가기와 비슷하다.
- 심볼릭 링크는 "파일 경로"에 대한 링크이다.
- 링크 파일을 삭제해도 원본 파일은 삭제되지 않는다.
- 원본 파일을 삭제하면 링크 파일을 사용할 수 없다.
- 디렉토리에 대해 링크를 만들 수 있다.
- 원본 파일을 이동하면 링크를 사용할 수 없게 된다.(broken)
하드 링크 Hard Link
ln [option] [origin file] [link file]
- 원본 파일과 같은 i-node 테이블을 사용한다. 그렇기 때문에 원본 파일의 개념이 없어지고 파일의 이름이 두 개라고 볼 수 있다.
- 파일을 수정하면 원본 파일과 링크 파일 모두 수정된다. > i-node가 같기 때문
- 디렉토리에 대해 링크를 만들 수 없다.
- 원본 파일을 이동시켜도 링크를 사용할 수 있다.
1. -i 옵션을 이용해 inode를 출력해보면 hardlink와 원본 파일의 inode가 같다.
2. symlink의 파일 사이즈는 원본 파일의 경로의 길이다.
3. 원본 파일에 걸린 링크의 갯수는 새로 생성한 hardlink 파일까지 2개다.
4. hardlink는 원본 파일과 같은 i-node를 사용하기 때문에 2이다.
5. symlink에는 하드링크가 걸리지 않았기 때문에 갯수가 1이다.
6. symlink는 파일 종류가 l이고 hardlink는 일반 파일로 구분된다.
7. symlink의 -> 뒤에 원본 파일의 이름이 나온다.
원본 파일을 삭제해도 하드링크는 사용할 수 있지만 심볼릭 링크는 사용할 수 없다.
원본 파일을 삭제하고 같은 이름으로 재생성했을 때, hardlink와는 inode가 다르므로 다른 파일이 된다.
symlink는 경로를 대상으로 지정되므로 재생성한 파일에 다시 링크를 걸게 된다.
링크를 사용하는 이유
- 파일에 대한 접근성 향상
- 디스크 공간 절약
→ 파일을 복사하는 것이 아니라 원본 파일은 하나만 있고 링크만 추가해줌으로써 디스크의 공간을 절약할 수 있다.
추가
- 파일의 stat을 자세하게 보는 명령어
stat [파일명]
stat test.txt
- 링크파일에 걸린 대상을 확인하는 명령어
readlink [링크]
readlink symlink
728x90