Docker/도커를 위한 리눅스 기초

[Docker를 위한 Linux 기초] 4. 하드 링크와 소프트 링크

Fletcher 2024. 8. 13. 11:41

 

반갑습니다!

이번에는 하드 링크과 소프트 링크에 관련된 내용을 살펴보겠습니다 ^^

 

하드 링크에 대해서 살펴보기 전에, 해당 파일 또는 디렉토리를 복사하는 명령어인

$ cp 명령어에 대해서 먼저 소개해드리겠습니다 ^^

이 명령어는 해당 파일을 그대로 복사하는 명령어입니다

 

 

$ cp 명령어를 이용해서 기존에 존재하는 test.txt 파일을 그대로 복사해서

test2.txt 파일을 만들어줬습니다

 

$ cat 명령어를 통해 해당 파일의 내용을 조회해보면 내용이 동일한 것을 확인할 수 있겠습니다 ^^

 

 

 

이제 vi 에디터를 이용해서 test.txt 파일의 내용을 일부 수정해주겠습니다 ^^

test 22222라는 문자열을 추가해줬습니다 !

 

 

 

마찬가지로 $ cat 명령어를 이용해서 test.txt와 test2.txt 파일의 내용을 조회해보니,

서로 내용이 다른 것을 확인할 수 있겠습니다 ^^

 

cp 명령어는 해당 파일을 그대로 복사해서 독립적인 별도의 파일을 만드는 것이므로,

두 파일간의 상관관계는 없기 때문에 어느 한 파일을 수정한다고 해서

나머지 파일에 영향을 끼치거나 하지 않습니다 ^^!

 

 

 

 

이번에는 $ ln 명령어를 이용해서 하드 링크를 걸어보겠습니다 ^^

 

test.txt 파일에 대해서 $ ln 명령어를 이용해서 test4.txt 파일을 생성하였습니다 ^^

생성한 직후이므로 두 파일의 내용 모두 동일한 것을 확인할 수 있겠습니다!

 

 

 

vi 에디터를 이용해서 test.txt 파일의 내용에 위와 같이

test 4444라는 임의의 문자열을 추가해 수정하겠습니다 ^^

 

 

 

다시 한 번 test.txt와 test4.txt를 각각 $ cat 명령어로 조회해보니,

test.txt 파일의 수정사항이 test4.txt 파일에도 적용되어 있는 것을 볼 수 있겠습니다 ^^

이와 같이 ln 명령어를 이용하면 파일을 복제하되,

링크가 걸려 있기 때문에 어느 한 파일의 수정 사항이 나머지 파일에도 영향을 끼칩니다 ^^!

 

 

 

 

이번엔 소프트 링크에 대해서 알아보겠는데요

$ ln 명령어에 -s 옵션을 추가해서 입력해주시면 되겠습니다 ^^

 

$ ls 명령어로 조회를 해보면 다른 파일들과는 달리 형태가 조금 독특한 것을 볼 수 있겠는데요

sl_text.txt가 해당 파일의 이름인데,

뒤에 -> test.txt 표시가 되어 있습니다 ^^

 

소프트링크는 일종의 바로가기 같은 느낌입니다

Windows 환경에서 바로가기 아이콘을 만들어 사용해보신 적 있으시죠?

해당 exe 파일 자체를 복제하는 것이 아니라,

exe 파일의 경로를 복사해서 바로 실행할 수 있는 아이콘만 만드는 기능을 하죠 ^^

 

소프트링크도 이와 같습니다

ln 작업의 대상이 되었던 파일 자체를 복제하는 것이 아니라,

그 파일을 실행할 수 있는 일종의 바로가기 역할로 생겨난 것이죠 ^^

 

 

그렇기 때문에 test.txt를 $ rm 명령어를 이용하여 삭제한 뒤

$ ln -s 명령어로 생성한 sl_test.txt 파일에 대해 $ cat 명령어로 조회를 해보려고 하면

위와 같이 No such file or directory라는 오류 메세지가 출력됩니다 ^^

 

 

 

 

이번 포스트에서는 하드 링크과 소프트 링크에 대해서 알아보았습니다 ^^

다음 포스트에 이어서 나머지 내용들 살펴보겠습니다!