이 글은 양주종의 코딩스쿨 리눅스(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 반환
'OS > Linux' 카테고리의 다른 글
리눅스 기초 30강 시리즈 - 25강 명령어 역사(history) (0) | 2023.02.04 |
---|---|
리눅스 기초 30강 시리즈 - 24강 명령어 별칭(alias) (0) | 2023.02.04 |
리눅스 기초 30강 시리즈 - 22강 파일 분류 (0) | 2023.02.04 |
리눅스 기초 30강 시리즈 - 21강 권한의 이해 (0) | 2023.02.04 |
리눅스 기초 30강 시리즈 - 20강 압축(gzip/xz/tar) (0) | 2023.02.04 |