ln 은 link 의 약자로, linux file system 에서 link file 을 생성하는 명령어이다
linux 의 link file 에는 symbolic link
와 hard link
, 두가지가 존재하는 데 이 둘에 대해서 알아보자
단순히 원본파일을 가리키도록 링크만 시켜둔 것으로 MS의 윈도우시스템에서 흔히 사용하는 '바로가기' 같은 것이며, 원본파일을 가리키고만 있으므로 원본파일의 크기와는 무관하다
원본파일과 다른 이름으로 존재하는 동일한 파일이며 원본파일과 동일한 내용의 다른 파일이라고 할 수 있다. 그리고 하드링크에서는 원본파일과 링크파일 두개가 서로 다른 파일이기 때문에 둘 중 하나를 삭제하더라도 나머지 하나는 그대로 남아 있다. 또한 하드링크에서는 원본파일의 내용이 변경될 경우에는 링크파일의 내용 또한 자동으로 변경된다.
# symbolic link
ln -s (echo $PWD)/<script> /usr/local/bin/<link>
# hard link
ln hard_source hard_link
--backup[=CONTROL] : 대상파일이 이미 존재할 경우에 백업파일을 만든 후에 링크파일 생성
-b : 링크파일 생성시에 대상파일이 이미 존재하면 백업파일을 만든 후에 링크파일을 생성
-d : 디렉토리에 대한 하드링크파일생성을 가능하게 함. 단 root 권한으로 수행하더라도 시스템의 권한제한으로 인하여 실패할 가능성이 높음.
(-F 와 --directory 는 -d 와 동일함)
-f : 대상파일이 존재할 경우에 대상파일을 지우고 링크파일을 생성
-i : 대상파일이 존재할 경우에 대상파일을 지울것인가를 확인요청 (--interactive 와 동일)
-s : 심볼릭 링크파일을 생성
-S : 백업파일 생성시에 원하는 접미사(suffix)를 지정할 수 있음
-t, --target-directory=DIRECTORY : 링크파일을 생성할 디렉토리를 지정
파일을 기술하는 디스크 상의 데이터 구조로서 파일의 데이터 블록이 디스크 상의 어느 주소에 위치하고 있는가와 같은 파일에 대한 중요한 정보를 갖고 있다.
[linux ln command] https://webdir.tistory.com/148#:~:text=ln%EC%9D%80%20Link%20%EC%9D%98%20%EC%95%BD%EC%96%B4,%EB%A7%81%ED%81%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EC%A1%B4%EC%9E%AC%ED%95%9C%EB%8B%A4.