Computer Security

#11 하드링크, 소프트 링크(실습) 본문

리눅스 시스템 프로그래밍

#11 하드링크, 소프트 링크(실습)

쿠리 Kuri 2022. 9. 16. 18:30
반응형

 

하드링크

ln TARGET LINK_NAME

 


 

 

1. 일단 echo hello > hello_world 명령어를 이용해서 hello_world 파일을 생성해준다.

 

 

 

 

 

 


2. ln hello_world hello_hardlinked 명령어를 이용해서 하드링크를 만들어준다.

 

 

 

 

 


3. ls -al 을 이용해 주면 아래의 그림과 같이 6바이트로 같은 것을 알 수 있다.

 

 

 

 

 


4.외관상에서는 어떤게 하드링크된 파일인지 구분하기 어렵다. 이를 확인하기 위해, 파일의 속성을 읽을 수 있는 명령어인 stat를 사용해보자.  hello_world 를 먼저 확인 해보자.

hello_world

Inode : 1190944 , links : 2  (일반적으로 1개이다. 하드링크를 생성했기 때문)

 

 

 

 

 


5.  hello_hardlinked를 확인 해보자.

hello_hardlinked

Inode : 1190944  ,  links : 2 

 

똑같은 것을 알 수 있다.

 

 

 

 

 


6. vi 명령어를 이용해 원본 파일인 hello_world에 hello kuri 를 적어서 읽어보자.

난 hello_world에 적었을 뿐인데, hello_hardlinked 에도 적힌 것을 알 수 있다.

 

 

 

 

 


 

소프트 링크

 

 


 

1. 소프트 링크는 대상 파일에 대해 링크를 걸어 주는 것이다.  소프트 링크는 ln -s 명령어로 실행해준다.

ln -s

 

 

 

 


2. ls -al 명령어를 이용해 확인 해보자.

ls -al

실제 파일이름과 원본이 되는 파일이름 사이에 화살표 표시가 되어있다.

소프트 링크파일의 경우 lrwxrwxrwx   즉, l로 시작한다.

 

 

 

 


3. stat 명령어를 이용해 두 파일을 비교 해보자.

stat

hello_world의 파일은 link가 두개인데, 소프트링크는 링크가 1개이다.

 

Inode 또한 서로 다르다.

 

파일 사이즈 또한 다르다.  ( hello_symlink 의 파일크기는 hello_world를 파일을 가르키는 경로를 저장한다.)

 

 

 

 

 


C 파일로 하드링크와 소프트 링크를 생성 해보자.


link.c

 

 


결과 값

 

 

잘 생성 된 것을 알 수 있다.

반응형
Comments