본문 바로가기
OS/Linux

리눅스 기초 30강 시리즈 - 23강 하드 링크 심볼릭 링크

by HJ0216 2023. 2. 4.

이 글은 양주종의 코딩스쿨 리눅스(Linux) 기초 강좌 30강 모음 수강하며 정리한 글입니다.

 

23강 하드 링크 심볼릭 링크

 

(일반 사용자 id: j, pw: j)

(관리자 id: root, pw: r)

 

 

1. C언어 파일 생성 및 컴파일

[j@hj0216 ~/dd]$ vi k.c
#include <stdio.h>
int main(void)
{
        puts("Linux Study\n");
        return 0;
}

[j@hj0216 ~/dd]$ gcc k.c -o k

 

2. ll -i: dir list 조회

[j@hj0216 ~/dd]$ ll -i
합계 16
12991323 -rwxrwxr-x. 1 j j 8440  2월  4 06:33 k
12991324 -rw-rw-r--. 1 j j   74  2월  4 06:33 k.c

-i: index number, i-node* 조회

* uid: user id, 컴퓨터가 사용자를 관리할 때 붙이는 번호

* gid: group id, 컴퓨터가 그룹을 관리할 때 붙이는 번호

* i-node: index number 컴퓨터가 파일을 관리할 때 붙이는 번호

 

3. cp k ck: k파일을 ck파일로 복사

[j@hj0216 ~/dd]$ ll -i
합계 28
12989497 -rwxrwxr-x. 1 j j 8440  2월  4 06:40 ck
12991323 -rwxrwxr-x. 1 j j 8440  2월  4 06:33 k
12991324 -rw-rw-r--. 1 j j   74  2월  4 06:33 k.c

k파일 복사 시, i-node 새로 생성

 

4. ln k lk: k파일에 대한 link 파일 생성

[j@hj0216 ~/dd]$ ln k lk
[j@hj0216 ~/dd]$ ll -i
합계 40
12989497 -rwxrwxr-x. 1 j j 8440  2월  4 06:40 ck
12991323 -rwxrwxr-x. 2 j j 8440  2월  4 06:33 k
12991324 -rw-rw-r--. 1 j j   74  2월  4 06:33 k.c
12991323 -rwxrwxr-x. 2 j j 8440  2월  4 06:33 lk

i-node 동일, hard link수 증가

-> 육안상 파일은 2개이지만, 물리적으로는 파일이 1개

= 파일 1개의 여러개의 이름(Hard Link) 부여

 

5. ln -s k sk: k파일에 대한 symbolic link 파일 생성

[j@hj0216 ~/dd]$ ln -s k sk
[j@hj0216 ~/dd]$ ll -i
합계 40
12989497 -rwxrwxr-x. 1 j j 8440  2월  4 06:40 ck
12991323 -rwxrwxr-x. 2 j j 8440  2월  4 06:33 k
12991324 -rw-rw-r--. 1 j j   74  2월  4 06:33 k.c
12991323 -rwxrwxr-x. 2 j j 8440  2월  4 06:33 lk
12989498 lrwxrwxrwx. 1 j j    1  2월  4 06:49 sk -> k
[j@hj0216 ~/dd]$

symbolic link: 바로가기 아이콘(실행파일이 아닌 실행파일의 주소값을 갖고 있음),

i-node 변경, hardlink 수 변화 X

 

➕ symbolic link의 원본 file을 삭제할 경우,

[j@hj0216 ~/dd]$ rm -rf k
[j@hj0216 ~/dd]$ ll -i
합계 28
12989497 -rwxrwxr-x. 1 j j 8440  2월  4 06:40 ck
12991324 -rw-rw-r--. 1 j j   74  2월  4 06:33 k.c
12991323 -rwxrwxr-x. 1 j j 8440  2월  4 06:33 lk
12989498 lrwxrwxrwx. 1 j j    1  2월  4 06:49 sk -> k
[j@hj0216 ~/dd]$ file sk
sk: broken symbolic link to `k'

ll -i: 실행 시, symbolic link file 빨간색으로 변화

file sk: 조회 시, broken symbolic link 반환