> 파일 및 디렉토리 관리 > link

link: 파일에 하드 링크 생성

`link` 명령어는 기존 파일에 대한 하드 링크를 생성하는 데 사용됩니다. 하드 링크는 원본 파일과 동일한 inode를 공유하며, 파일 시스템 내에서 동일한 데이터를 가리키는 또 다른 이름 역할을 합니다. 원본 파일이 삭제되어도 하드 링크가 남아있다면 데이터는 유지됩니다.

개요

`link` 명령어는 지정된 두 파일 경로를 사용하여 하드 링크를 생성합니다. 첫 번째 인수는 기존 파일의 경로이고, 두 번째 인수는 새로 생성될 하드 링크의 경로입니다. 이 명령어는 `ln` 명령어의 하드 링크 생성 기능과 유사하지만, 추가적인 옵션 없이 오직 하드 링크 생성 기능만 제공합니다.

주요 특징

  • 기존 파일에 대한 하드 링크 생성
  • 원본 파일과 동일한 inode 공유
  • 동일한 파일 시스템 내에서만 작동
  • 디렉토리에는 하드 링크 생성 불가

사용 예시

다음은 `link` 명령어를 사용하는 몇 가지 예시입니다.

기본 하드 링크 생성

echo "Hello, World!" > original.txt
link original.txt hardlink.txt
ls -li original.txt hardlink.txt

`original.txt` 파일에 대한 `hardlink.txt`라는 이름의 하드 링크를 생성합니다.

원본 파일 삭제 후 링크 확인

echo "This is a test." > file_to_link.txt
link file_to_link.txt linked_file.txt
rm file_to_link.txt
cat linked_file.txt

원본 파일을 삭제해도 하드 링크를 통해 데이터에 접근할 수 있음을 보여줍니다.

팁 & 주의사항

`link` 명령어를 사용할 때 유용한 팁과 주의해야 할 사항들입니다.

하드 링크의 이해

  • inode 공유: 하드 링크는 원본 파일과 동일한 inode 번호를 가집니다. 이는 두 이름이 동일한 실제 데이터를 가리킨다는 의미입니다. 파일 시스템은 inode의 참조 카운트(link count)를 추적하며, 이 카운트가 0이 될 때까지 실제 데이터는 삭제되지 않습니다.
  • 파일 시스템 경계: 하드 링크는 동일한 파일 시스템 내에서만 생성할 수 있습니다. 다른 파티션이나 마운트된 디스크에 있는 파일에는 하드 링크를 만들 수 없습니다. 이 경우 심볼릭 링크(symlink)를 사용해야 합니다.
  • 디렉토리 링크 불가: `link` 명령어는 디렉토리에 대한 하드 링크를 생성할 수 없습니다. 디렉토리 하드 링크는 파일 시스템의 무결성을 해칠 수 있기 때문에 일반적으로 허용되지 않습니다.

`link`와 `ln`의 차이

  • 기능: `link` 명령어는 오직 하드 링크만 생성합니다. 반면 `ln` 명령어는 `-s` 옵션을 통해 심볼릭 링크를 생성할 수 있으며, `-f` (강제 덮어쓰기), `-v` (상세 출력) 등 더 많은 옵션을 제공합니다.
  • 사용 편의성: 대부분의 경우 `ln` 명령어가 더 유연하고 편리하여 널리 사용됩니다. `link`는 `ln`의 하드 링크 생성 기능만을 제공하는 더 기본적인 유틸리티입니다.

동일 카테고리 명령어