pnpm 을 공부하면서 계속 나오는 Hard Link, Symbolic Link 가 너무 헷갈린다.
최근 사내에서 pnpm 을 적극적으로 도입하는 과정에서 pnpm 에 대한 분석을 진행 중이었는데, Hard Link 와 Symbolic Link 가 계속 헷갈리는 내 자신을 발견하고선 이대로 안되겠다 싶어 이 참에 두 개념을 깔끔하게 정리하겠다는 생각이 들었다.
ls
명령어의 -i
옵션은 inode를 보여줍니다. 가장 좌측의 숫자가 바로 inode ID입니다.Linux에서 파일 시스템의 파일 이름과 연결되는 Directory Entry입니다.
Linux에서 절대 경로나 상대 경로의 형태로 된 다른 파일이나 디렉터리에 대한 참조를 포함하는 별도의 파일입니다.
ln
명령어Hard Link / Symbolic Link를 생성하는 명령어는 ln
입니다.
-s
옵션을 사용하여 Hard Link 대신 Symbolic Link를 생성할 수 있습니다.ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR
Create a link LINK or DIR/TARGET to the specified TARGET(s)
-s Make symlinks instead of hardlinks
-f Remove existing destinations
-n Don't dereference symlinks - treat like normal file
-b Make a backup of the target (if exists) before link operation
-S SUF Use suffix instead of ~ when making backup files
-T Treat LINK as a file, not DIR
-v Verbose
ln
명령어의 옵션 설명아래는 ln
명령어에서 제공하는 다양한 Flag 목록입니다.
옵션 | 설명 |
---|---|
-s | 심볼릭 링크 생성 (기본적으로는 하드 링크) |
-f | 기존의 대상 파일을 제거 |
-n | 심볼릭 링크를 역참조하지 않고 일반 파일처럼 취급 |
-b | 링크 작업 전에 대상 파일의 백업을 생성 |
-S | 백업 파일 생성 시 사용할 접미사를 지정 |
-T | 링크를 디렉터리가 아닌 파일로 취급 |
-v | 자세한 정보 출력 |