본문 바로가기
IT/@Linux

[Linux/CentOS 8] 하드링크 ? 심볼릭 링크

by He;story 2020. 1. 26.

 

vi k.c : vi 편집기로 k.c를 열어준다.  만약 k.c라는 게 없을 경우 생성

 

위에는 C언어 코드입니다.

간단하게 작성 한다음 저장해주세요 

 

:wq : 저장  

컴파일 할 떄 gcc 패키지가 없어 정상적으로 실행이 안될 수 있으니 아래 내용 참조하시기 바랍니다.

https://awesomek.tistory.com/entry/LinuxCentOS-8-c%EC%96%B8%EC%96%B4-%EC%BD%94%EB%94%A9-gcc-%ED%99%9C%EC%9A%A9

 

[Linux/CentOS 8] c언어 코딩 gcc 활용

Linux에 개발환경을 구축하기 위해서는 컴파일러(Compiler) 설치를 진행해야합니다. yum -y install gcc : gcc 패키지 설치 rpm -qa | grep gcc : gcc 패키지 리스트를 확인 j계정로 전환하여 vi t.c .c는 확장..

awesomek.tistory.com


gcc k.c -o k : k.c 라는 소스를 k 라는 이름의 실행파일 생성

PATH=$PATH:. : 실행 시 ./ 안붙이고 사용할 수 있다.

 

ll -i : 파일권한 앞에 번호가 나오는데 이걸 INDEX NO 입니다. i-node 라고 불립니다.
ll 에 i 옵션을 주면 i-node를 보여줍니다. 
파일권한 뒤에 1이라는 숫자는 하드링크 수를 뜻합니다.

 

cp k ak : k를 ak로 복사

똑같이 k파일을 복사했지만 i-node 값을 다른 것을 확인 17105090  / 17105088 

주소 값이라 생각하면 되며, 메모리 주소가 아닌 하드디스크의 주소 값입니다.

 

컴퓨터가 관리하는 번호

 

컴퓨터가 사용자를 관리할 때 No. 를 붙여서 관리 이것을 UID 라고 부른다.

그룹을 관리할 때는 GID 라고 부른다.

파일을 관리할 때는 i-node 라고 부른다.


하드링크

원본파일과 이름은 다르지만 동일한 파일입니다. 하드링크에서는 원본파일이나 링크파일 둘중의 하나가 삭제되더라도 나머지 하나는 그대로 남아 정상 동작 합니다. 또한 하드링크는 원본파일의 내용이 변경될 경우에 링크파일의 내용도 자동으로 변경됩니다.

ln k k2 : 기존 k파일을 k2 파일을 링크

k2 파일은 k 파일과 i-node 값이 같다. (물리적으로 파일은 하나가 있다라는 것을 알 수 있다.)

그리고 하드링크는 똑같이 2로 표기 되어있다.

즉 물리적 파일은 따로 가지고 있지만 하나가 삭제되더라도 정상 동작 할 수 있습니다.

 

하드링크를 삭제하면 어떻게 될까?

rm -rf k2 : k2 삭제 

역시나 하드링크 수가 2개에서 1개로 변경된 것을 확인 할 수 있다.


소프트 링크

원본파일을 가리키도록 링크만 시켜둔 것으로 윈도우의 바로가기와 같다고 보시면 됩니다. 심볼릭링크는 원본파일이

삭제되면 링크파일은 작동하지 않게 됩니다.

ln -s k sk : 기존 k를 sk로 심볼릭 링크 파일 생성

sk -> k 를 가르키고 있고 용량은 1바이트로 표기가 되어있다.

그리고 맨 앞에    - 이 아닌 l로 시작하고 있다. 이게 심볼릭 링크라고 보면 된다.

윈도우로 따지면 바로가기 아이콘? 이라고 생각하면 될 듯 하다. 주소값만 가지고 있는?

file sk : sk 파일 타입 확인 

Symbolic link라고 표시되어 있다.


주소 값만 가지고 있다라고 했는데 확인

ln -s /etc eee : /etc를 eee로 심볼릭 링크 생성

eee -> /etc 를 가리키는 것을 볼 수 있다.

/etc에 들어와 있는 거랑 똑같다 라는 것을 확인

 

 

심볼릭링크를 삭제하면 어떻게 될까?

sk -> k로 표기되어 있는데 k를 삭제해보자

rm -f k : k를 삭제

역시 원본을 삭제하니. 빨간색으로 경고가 뜬다.

파일 타입도 확인해보자

깨진 심볼릭 링크라고 뜬다.

심볼릭 링크는 원본파일이 없으면 경고가 뜬다.

 

댓글