링크에 대해서
업데이트:
카테고리: 이것이 우분투 리눅스다
1. 링크의 종류
링크의 종류는 하드링크와 심볼릭 링크가 있다.
- 하드 링크(hard link) : ln 파일이름 링크파일이름 으로 생성할 수 있다.
- 심볼릭 링크(symbolic link)는 ln -s 파일이름 링크파일이름 으로 생성할 수 있다.
이 두 링크의 차이점은 간단하게 말하면 다음과 같다.
- 하드 링크 는 파일 자체를 복사하는 것
- 심볼릭 링크는 파일의 inode를 point형식으로 복사하는 것.
1.1 실습을 통한 링크의 차이점 확인
실제로 sample라는 파일을 생성한 후, 아래 코드와 같이 생성하게 되면,
echo example >> sample.txt
ln sample.txt hardlink
ln -s sample.txt softlink
아래 코드를 통해 sample의 파일을 읽을 수 있다.
cat hardlink
cat softlink
그러나 sample.txt 파일의 위치를 다른 directory로 옮길 시엔 cat hardlink 만 실행되고 cat softlink는 실행되지 않는다. 여기서 개념의 차이를 따지면 다음과 같다.
- 하드 링크는 파일 자체를 복사했기 때문에 같은 크기, 같은 inode를 가지므로 실행이 된다.
- 심볼릭 링크는 현재 sample의 inode를 point의 개념으로 가져간 것이기 때문에 정보를 잃어서 실행이 되지 않는 것 같다. (아닐수도있다)
그래서 만약에 파일을 복사할 땐, 원본 파일을 자주 움직여야한다면 하드링크 사용을 추천하고, 원본 파일을 움직이지 않는다면 심볼릭 링크를 사용하면 된다.