Linux

[리눅스] ln 명령어 완벽 가이드 사용법

인생아 2024. 9. 29. 19:44
반응형

ln 명령어는 링크(link)를 생성하는 데 사용됩니다. 링크는 하드 링크(hard link)와 심볼릭 링크(symbolic link)로 나눌 수 있는데, 각각의 역할과 목적이 다릅니다. 하드 링크는 원본 파일의 복사본처럼 동작하며, 심볼릭 링크는 파일의 경로를 가리키는 일종의 단축 아이콘 같은 역할을 합니다.

하드 링크 (Hard Link)

하드 링크는 원본 파일과 동일한 데이터 블록을 가리키므로, 파일 내용이 동일하게 유지됩니다. 파일의 이름을 바꾸거나 원본 파일을 삭제하더라도 하드 링크는 여전히 파일에 접근할 수 있습니다.

하드 링크 생성 명령어

ln 원본파일 링크파일

예를 들어, file1.txt라는 파일을 file1_hardlink.txt라는 하드 링크로 생성하려면 다음과 같이 실행합니다.

user@linux:~/Documents$ ln file1.txt file1_hardlink.txt
user@linux:~/Documents$ ls -l
-rw-r--r-- 2 user user 0 Sep 28 12:00 file1.txt
-rw-r--r-- 2 user user 0 Sep 28 12:00 file1_hardlink.txt

위의 명령은 file1.txt와 동일한 하드 링크 file1_hardlink.txt를 생성합니다. ls -l 명령을 실행하면, 두 파일이 동일한 inode 번호를 가지고 있음을 확인할 수 있습니다.

심볼릭 링크 (Symbolic Link)

심볼릭 링크는 파일 자체를 가리키는 것이 아니라 파일의 경로를 참조합니다. 이 때문에 원본 파일이 삭제되거나 이동되면, 심볼릭 링크는 깨진 링크가 됩니다.

심볼릭 링크 생성 명령어

ln -s 원본파일 링크파일

예를 들어, file1.txt의 심볼릭 링크를 file1_symlink.txt로 생성하려면 다음과 같이 실행합니다.

user@linux:~/Documents$ ln -s file1.txt file1_symlink.txt
user@linux:~/Documents$ ls -l
-rw-r--r-- 1 user user 0 Sep 28 12:00 file1.txt
lrwxrwxrwx 1 user user 9 Sep 28 12:00 file1_symlink.txt -> file1.txt

이 예시에서 file1_symlink.txtfile1.txt의 심볼릭 링크입니다. ls -l을 통해 심볼릭 링크는 원본 파일을 참조하고 있음을 확인할 수 있습니다.

ln 명령어 주요 옵션

1. 하드 링크 생성: 기본 옵션으로 ln 명령어를 사용하면 하드 링크를 생성합니다.

ln 원본파일 링크파일

2. 심볼릭 링크 생성: -s 옵션을 사용해 심볼릭 링크를 생성합니다.

ln -s 원본파일 링크파일

3. 강제 덮어쓰기: 이미 존재하는 파일에 대해 강제로 링크를 덮어씌우고자 할 때는 -f 옵션을 사용합니다.

ln -sf 원본파일 링크파일

4. 대화형 모드: 덮어쓰기 전에 사용자에게 확인을 요청할 때는 -i 옵션을 사용합니다.

ln -i 원본파일 링크파일

하드 링크와 심볼릭 링크의 차이점

  • 하드 링크는 동일한 파일 데이터를 가리키므로 원본 파일을 삭제해도 데이터에 접근할 수 있습니다. 반면, 심볼릭 링크는 원본 파일의 위치를 참조하므로, 원본 파일이 삭제되면 링크가 깨집니다.
  • 심볼릭 링크디렉토리에도 생성할 수 있지만, 하드 링크는 디렉토리에 생성할 수 없습니다.

ln 명령어 예시

user@linux:~/Documents$ ln file1.txt file1_hardlink.txt
user@linux:~/Documents$ ln -s file1.txt file1_symlink.txt
user@linux:~/Documents$ ls -l
-rw-r--r-- 2 user user 0 Sep 28 12:00 file1.txt
-rw-r--r-- 2 user user 0 Sep 28 12:00 file1_hardlink.txt
lrwxrwxrwx 1 user user 9 Sep 28 12:00 file1_symlink.txt -> file1.txt

이 명령어들은 각각 하드 링크심볼릭 링크를 생성한 예시입니다. ls -l을 통해 두 파일의 inode 번호가 동일한 것을 확인할 수 있으며, 심볼릭 링크는 원본 파일을 참조하고 있습니다.

참고 사이트

반응형