Linux Hard Link 사용하는 방법 (파일을 효율적으로 관리하는 방법)

Linux에서는 하나의 파일을 여러 이름으로 사용할 수 있는 기능을 제공합니다. 이 기능을 Hard Link(하드 링크) 라고 합니다. 하드 링크를 사용하면 원본 파일을 복사하지 않고도 동일한 데이터를 여러 파일 이름으로 사용할 수 있습니다.

Hard Link는 심볼릭 링크와 비슷해 보이지만 동작 방식이 다릅니다. 심볼릭 링크는 원본 파일의 위치를 참조하지만, Hard Link는 동일한 inode를 공유합니다. 따라서 원본 파일 이름이 변경되거나 삭제되어도 데이터는 그대로 유지됩니다.

이번 글에서는 Linux에서 Hard Link를 사용하는 방법과 심볼릭 링크와의 차이점을 자세히 알아보겠습니다.

Hard Link란?

Hard Link는 기존 파일과 동일한 inode를 공유하는 새로운 파일 이름입니다.

원본 파일과 Hard Link는 모두 동일한 데이터를 참조합니다.

어느 한쪽에서 파일 내용을 수정하면 다른 쪽에서도 동일한 내용이 표시됩니다.

Linux 파일 시스템 내부에서만 사용할 수 있는 기능입니다.

Hard Link 생성하기

Hard Link를 만들려면 ln 명령어를 사용합니다.

기본 사용법은 다음과 같습니다.

ln 원본파일 링크파일

예를 들어 file1.txt의 Hard Link를 만들려면 다음 명령어를 실행합니다.

ln file1.txt file2.txt

이제 file1.txt와 file2.txt는 동일한 데이터를 공유합니다.

Hard Link 확인하기

생성된 Hard Link를 확인하려면 다음 명령어를 실행합니다.

ls -li

출력 결과에서 inode 번호를 확인합니다.

Hard Link는 같은 inode 번호를 사용합니다.

예를 들어 다음과 같이 표시될 수 있습니다.

123456 file1.txt
123456 file2.txt

inode 번호가 같다면 Hard Link가 정상적으로 생성된 것입니다.

파일 내용 수정하기

원본 파일을 수정합니다.

echo "Linux" >> file1.txt

그다음 Hard Link를 확인합니다.

cat file2.txt

같은 내용이 출력됩니다.

두 파일은 동일한 데이터를 사용하기 때문입니다.

Hard Link 삭제하기

Hard Link는 일반 파일처럼 삭제할 수 있습니다.

rm file2.txt

Hard Link만 삭제됩니다.

원본 데이터는 다른 Hard Link가 남아 있는 동안 계속 유지됩니다.

원본 파일 삭제하기

원본 파일을 삭제해도 다른 Hard Link가 남아 있다면 데이터는 삭제되지 않습니다.

예를 들어 다음 명령어를 실행합니다.

rm file1.txt

그다음 file2.txt를 확인하면 파일은 정상적으로 사용할 수 있습니다.

모든 Hard Link가 삭제되어야 실제 데이터도 함께 삭제됩니다.

Hard Link 개수 확인하기

현재 파일이 몇 개의 Hard Link를 가지고 있는지 확인하려면 다음 명령어를 사용합니다.

ls -l

권한 정보 옆의 숫자가 Hard Link 개수입니다.

예를 들어 숫자가 2라면 동일한 inode를 사용하는 파일이 두 개 있다는 의미입니다.

Hard Link의 제한 사항

Hard Link는 모든 상황에서 사용할 수 있는 것은 아닙니다.

다음과 같은 제한이 있습니다.

  • 디렉터리에는 일반적으로 사용할 수 없습니다.
  • 다른 파일 시스템에는 생성할 수 없습니다.
  • 같은 파일 시스템 내부에서만 사용할 수 있습니다.

이러한 이유로 서버에서는 심볼릭 링크와 Hard Link를 목적에 따라 구분하여 사용합니다.

Hard Link와 파일 복사의 차이

파일을 복사하면 새로운 inode가 생성됩니다.

Hard Link를 만들면 기존 inode를 그대로 공유합니다.

따라서 Hard Link는 디스크 공간을 거의 추가로 사용하지 않습니다.

같은 데이터를 여러 이름으로 관리해야 하는 환경에서 효율적으로 사용할 수 있습니다.

Hard Link 사용 시 주의할 점

Hard Link는 원본과 링크 파일을 구분하지 않습니다.

두 파일 모두 동일한 데이터를 참조하기 때문에 어느 파일을 수정하더라도 내용은 함께 변경됩니다.

또한 다른 파일 시스템에는 Hard Link를 생성할 수 없으므로 작업 전에 디스크 구조를 확인하는 것이 좋습니다.

자주 묻는 질문

Hard Link는 어떻게 생성하나요?

다음 명령어를 사용합니다.

ln file1.txt file2.txt

Hard Link가 정상적으로 생성되었는지 확인하려면 어떻게 하나요?

다음 명령어를 사용합니다.

ls -li

inode 번호가 같다면 정상적으로 생성된 것입니다.

원본 파일을 삭제하면 Hard Link도 삭제되나요?

아닙니다.

다른 Hard Link가 남아 있다면 데이터는 그대로 유지됩니다.

마무리

Hard Link는 Linux에서 동일한 inode를 공유하여 하나의 데이터를 여러 파일 이름으로 사용할 수 있는 기능입니다. 파일을 복사하지 않아도 동일한 데이터를 공유하므로 저장 공간을 효율적으로 사용할 수 있습니다. ln, ls -li, rm 명령어를 함께 활용하면 Hard Link를 쉽게 생성하고 관리할 수 있으며, 심볼릭 링크와의 차이를 이해하면 Linux 파일 시스템을 더욱 효과적으로 운영할 수 있습니다.

댓글 남기기