Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 파일의 하드 링크 만들기 – os.link() 사용법 완벽 정리

Python에서 파일의 하드 링크(hard link)를 생성하려면 os 모듈의 os.link(src, dst) 메서드를 사용하면 됩니다. 이 메서드는 기존 파일을 가리키는 새로운 이름을 만들어 주기 때문에, 파일을 통째로 복사하지 않고도 동일한 데이터에 접근할 수 있는 또 다른 진입점이 필요할 때 매우 유용합니다.

os.link() 기본 문법

os.link(src, dst)
  • src: 원본 파일의 경로
  • dst: 새로 생성될 하드 링크의 이름(경로)

실전 예제

예를 들어, photo.jpg라는 파일이 있고 이 파일을 가리키는 하드 링크로 my_photo.jpg를 만들고 싶다면 아래와 같이 간단히 작성할 수 있습니다:

>>> import os
>>> os.link('photo.jpg', 'my_photo.jpg')

실행 후 해당 디렉터리의 파일 목록을 확인해 보면 my_photo.jpg가 생성된 것을 볼 수 있습니다. 겉보기에는 두 개의 독립된 파일처럼 보이지만, 실제로는 하나의 데이터를 함께 가리키고 있습니다.

하드 링크의 주요 특징

  • 하드 링크는 원본 파일과 동일한 inode를 공유합니다. 따라서 어느 한쪽의 내용을 수정하면 다른 쪽에도 그대로 반영됩니다.
  • 원본 파일을 삭제하더라도 하드 링크가 남아 있다면 실제 데이터는 디스크에 그대로 유지되며, 링크된 파일을 통해 계속 접근할 수 있습니다.
  • 일반적인 파일 복사와 달리 데이터를 중복 저장하지 않으므로 속도가 빠르고 디스크 공간도 거의 차지하지 않습니다.
  • 단, 하드 링크는 같은 파일 시스템(파티션) 안에서만 생성할 수 있으며, 디렉터리에는 일반적으로 사용할 수 없다는 제약이 있습니다.

오류 처리 팁

원본 파일이 존재하지 않거나 대상 이름이 이미 사용 중이라면 FileNotFoundError, FileExistsError 등의 예외가 발생할 수 있습니다. 실무 코드에서는 아래처럼 예외 처리를 추가하는 것이 좋습니다:

>>> import os
>>>
>>> try:
>>> os.link('photo.jpg', 'my_photo.jpg')
>>> except FileExistsError:
>>> print('동일한 이름의 링크가 이미 존재합니다.')
>>> except FileNotFoundError:
>>> print('원본 파일을 찾을 수 없습니다.')

이처럼 os.link()는 백업 스냅샷, 버전 관리, 대용량 파일의 효율적인 참조 등 다양한 상황에서 활용할 수 있는 강력한 도구입니다.