리눅스 심볼릭 링크와 하드 링크 (Linux Symbolic & Hard Link)
by 현생사는갓생지망생심볼릭링크와 하드링크
링크란?
하나의 특정 파일 또는 디렉토리에 접근을 쉽게 할 수 있도록 하는 방법
i-node ?
실제 데이터가 어디에 존재하는지 알려준다. 실제 데이터와 파일 이름을 연결해주는 역할
이해를 쉽게 하기 위해 실습을 먼저 해보자.
먼저, 원본파일(Original File)을 하나 만들어본다.
ls -ial 명령어로 봤을 때 가장 앞에 보이는 숫자가 i-node 숫자이다.
cp -a 로 복사했지만 i-node 가 다른 것을 보아 완벽히 같은 파일은 아니다.
하드링크 > ln [링크 원본파일] [생성할 링크 파일명]
하드링크는 완벽하게 똑같은 파일을 생성한다.
같은 아이노드넘버로 원본파일을 가리키게 된다.
cat >> 명령어로 생성된 하드링크파일에 데이터를 추가해보면
원본파일의 용량도 같이 증가한 것을 확인할 수 있다.
만약 원본파일을 삭제해도,
데이터와 아이노드넘버가 삭제되는 것은 아니기 때문에 하드링크파일이 원본데이터를 찾아갈 수 있다.
심볼릭링크 > ln -s [링크 원본파일] [생성할 링크 파일명]
심볼릭링크는 새로운 아이노드 넘버로 생성된다.
ls -ial 명령어로 확인했을 때 위와 같이 나온다면 링크가 잘 걸린 것이다.
i-node(1310743) > Original File Pointer > Original File(babo2.txt) > i-node(1310741) > Original Data
만약 원본파일인 babo2.txt를 삭제한다면
위와 같이 빨간색으로 깜빡거리며 링크가 손상되었다는 것을 알려준다.
cat > babo2.txt
다시 원본파일을 생성해준다면 문제없이 링크가 생성된다 !
Symbolic Link
- 새로운 i-node 생성
- 원본파일 삭제 시 링크가 끊긴다.
- 다른 파일시스템에서도 사용 가능하다.
Hard Link
- 동일한 i-node 사용
- 원본파일 수정 시 하드링크파일도 같이 수정된다.
- 원본파일을 삭제해도 남아 있다.
- 동일 파일시스템에서만 사용 가능하다.
- 하드링크의 단점을 보완한 것이 심볼릭링크
문제 !!
1.
현재 여러분은 /a/b 디렉토리에 있습니다.
/a/b/c/test.txt 파일 생성합니다.
심볼릭링크 작성 합니다.
/a/b/c/test.txt 파일을 /a/test1.txt 로 단 절대경로 사용금지, 상대경로로만 작성하세요.
=>
mkdir -p /a/b/c
cd /a/b
touch c/test.txt
ln -s b/c/test.txt ../test1.txt
주의할 점 !!
[생성할 링크 파일명]을 먼저 작성해준다. (현재 자신의 위치 기준 상대경로)
[링크 원본파일] 은 '생성할 링크 파일'의 위치 기준 상대경로
2.
/1/2/3/4/5 디렉토리 생성
/1/2/3/4/a.txt 파일 생성
여러분은 /1/2/3디렉토리에 있습니다.
심볼릭 링크 생성 /1/b.txt 단 상대 경로로만 작성을 합니다.
=>
mkdir -p /1/2/3/4/5
touch /1/2/3/4/a.txt
cd /1/2/3
ln -s 2/3/4/a.txt ../../b.txt
'IT 기초 공부기록 > Linux' 카테고리의 다른 글
ACL이용하여 Linux 서버 권한 설정 - setfacl/getfacl (0) | 2018.09.21 |
---|---|
chown/chmod 명령어 사용하여 Linux 권한 설정 (0) | 2018.09.21 |
Linux 사용자 계정 생성/삭제 (CentOS) (0) | 2018.09.21 |
Linux 기본 명령어 (0) | 2018.09.21 |
VMWare 이용하여 CentOS 가상머신 설치 (0) | 2018.09.17 |
블로그의 정보
현생이네
현생사는갓생지망생