linux 링크파일
안녕하세요. 이번 포스트에서는 링크파일 및 장치파일에 관하여 포스트 하겠습니다.
링크파일은 윈도우로 따지면 바로가기 기능 아시죠? 이것과 동일한 기능으로 보시면 됩니다. 링크파일을 만들어 두면 원본파일의 경로가 아니더라도 언제 어디서든 이 파일로 파일을 실행시킬 수 있게 해주는 것이죠~
링크 파일의 종류는 크게 하드링크 와 심볼릭 링크(소프트 링크)로 나눌수 있는데요~
링크에 대해 설명드리기전에 아이노드(inode)의 개념에 대해 잠시 설명드릴게요.
--------------------------------------------------------------------------------------------
아이노드 : 파일에 대한 정보를 갖고 있는 것 즉, 파일의 속성
모든 파일은 태어날 때 무조건 하나의 아이노드와 데이터블록을 갖고 태어나는데요.. 운영체제는 이러한 아이노드 번호로 각 파일을 식별합니다.
(데이터블록에는 파일에 대한 모든 데이터가 들어가 있습니다.)
예를 들어 사용자가 운영체제에 A라는 파일을 찾으라는 명령을 내릴 때, 파일시스템이란 것이 아이노드 번호로 식별해 해당 파일을 찾아내는 것이죠..
여기서 위에나온 파일시스템(File System) 이란.. 무엇인가 하면
파일을 어떠한 위치에 보관하고 빠르게 검색할 수 있게 해주는 일종의 저장장치 라고 할 수 있겠습니다. 이따 설명할 모든 장치파일은 이 파일시스템을 생성해 줘야 그 장치를 사용할 수가 있어요~! 일종의 포맷을 해주는 것이죠.
--------------------------------------------------------------------------------------------
하드 링크란 기존 원본파일의 아이노드에 접근할 수 있는 또다른 파일이며 같은 아이노드를 가져 원본파일 데이터블록에 접근할 수 있는 또다른 경로를 만들어 줍니다.
그에 반해 심볼릭 링크는 따로 아이노드를 생성하고 원본파일의 주소를 저장합니다. 따라서 데이터블록이 필요하지 않죠.. 하지만 원본파일의 주소가 변경되면 이 심볼릭링크는 쓰레기가 된다는것! ㅠㅠ
하드링크를 만드는 방법에 대해서 설명해드릴게요!
명령어는 다음과 같습니다.
ln <original path> <link path>
풀이하면 ln+원본파일의경로+새롭게만들 링크파일의 이름(경로)으로 해석하면 되겠네요.
한번 만들어 보겠습니다.
hi~~ 라는 정보를 가진 file1 파일에 대한 하드링크를 file2 라는 이름으로 만든 화면입니다. 같은 내용을 가진 file2를 확인할 수 있죠!
명령어 ls -i 를 사용하면 아이노드값을 볼 수가 있는데 두 개의 파일이 아이노드 값이 같은게 보이시나요~?!
다음은 소프트링크를 만들어 봅시다.
명령어는 다음과 같습니다.
ln <original path> <link path>
file1에 대한 file2의 소프트링크를 만들었을때 ls -l 로보니 file2 -> file1 이런식으로 묶여있는게 보이실 겁니다. 이 때의 아이노드번호는 다를테고요!
그리고 원본 파일의 경로를 바꾸었더니 밑에 빨갛게 파일이 깨져버린게 보이시죠? 저렇게 경로가 바뀌어 깨져버린 파일은 사용할 수 없습니다..!!
※ 링크파일들은 디렉터리 파일에도 적용 가능합니다!
이것으로 링크파일에 대한 포스트를 마치겠습니다. 서투른 설명이라 이해가 되실 줄 모르겠지만 제가 알고 있는 내에서 설명드려봤어요. 같이 공부하는 입장이니 틀린것 같은 곳이 있다면 지적해주시길 ㅠ_ㅠ
'OS > linux' 카테고리의 다른 글
linux 파티션(분할) (0) | 2016.09.27 |
---|---|
linux 장치파일 (0) | 2016.09.26 |
linux VI Editor (0) | 2016.09.26 |
linux 디렉터리 파일과 경로 (2) | 2016.09.22 |
linux 기본 명령어 익히기 (1) | 2016.09.22 |