[Ubuntu] 하드 링크와 심볼릭 링크
programming/os

[Ubuntu] 하드 링크와 심볼릭 링크


5. 하드 링크와 심볼릭 링크


5.1 하드 링크


5.1.1 하드 링크는 원본 파일의 주소를 가리킴


5.1.2 하드 링크는 윈도우즈의 바로가기와 비슷함

윈도우즈의 바로가기를 지운다고 해서 원본 파일이 지워지지 않듯이 리눅스의 하드 링크를 지운다고 해서 원본 파일의 내용이 지워지지 않는다.


5.1.3 문법

ln 원본파일 하드링크이름


5.2 심볼릭 링크


5.2.1 심볼릭 링크는 바로가기를 가리키는 바로가기라고 할 수 있다.


하나의 실제 파일 내용을 가리키는 하드 링크 또는 심볼릭 링크는 여러 개가 될 수 있다.


5.2.2 문법

ln -s 원본파일 링크파일


5.3 실습


5.3.1 /home/user 디렉토리로 이동

cd /home/user


5.3.2 basefile 생성 및 내용 작성

gedit basefile

간단한 내용을 작성함.


5.3.3 작성한 내용 확인

cat basefile


softlink → basefile → 원본파일

        hardlink →


5.3.4 하드링크 생성

ln basefile hardlink


5.3.5 심볼릭링크 생성

ln -s basefile softlink


5.3.6 파일 목록에 inode(파일의 주소값)을 함께 출력시킴

ls -il


basefile과 hardlink의 주소는 같다.

basefile과 softlink의 주소는 다르다.


72862978 -rw-r--r--. 2root    root                    10    3월    6    00:19    basefile

72862978 -rw-r--r--. 2root    root                    10    3월    6    00:19    hardlink

72862979 lrwxrwxrwx. 1root    root                   8    3월    6    00:20    softlink -> basefile


5.3.7 hardlink가 가리키는 basefile의 내용이 출력됨

cat hardlink


5.3.8 softlink가 가리키는 basefile 하드 링크를 통하여 basefile의 내용이 출력됨

cat softlink


5.3.9 basefile을 삭제한다.

rm basefile


5.3.10 파일 목록 확인

ls -il

hardlink는 살아있고

softlink는 색상이 깨져있음(basefile을 가리키고 있었는데 basefile이 지워졌으므로)


5.3.11 하드 링크를 사용하여 파일 내용 확인

cat hardlink

basefile이 가리키던 실제 파일 내용이 삭제된 것은 아님

hardlink라는 이름으로 파일 내용에 접근할 수 있음


5.3.12 softlink가 가리키던 basefile이 삭제되었으므로 에러가 발생함

cat softlink