[파이썬] 파일의 하드 링크와 심볼릭 링크

리눅스와 유닉스 기반 시스템에서 파일을 다루다보면 “하드 링크”와 “심볼릭 링크”라는 용어를 종종 듣게 됩니다. 하드 링크와 심볼릭 링크는 파일 시스템에서 파일을 참조하고 연결하는 방법에 대한 것입니다. 이 글에서는 파이썬을 사용하여 하드 링크와 심볼릭 링크를 생성하고 사용하는 방법을 알아보겠습니다.

하드 링크(Hard Link)란?

하드 링크는 동일한 파일에 대한 링크를 의미합니다. 다른 말로 하면, 동일한 파일 시스템에서 이미 존재하는 파일에 대한 추가 참조입니다. 이 말은, 원본 파일과 하드 링크 파일은 동일한 내용을 가지고, 변경 사항이 하나의 파일에 반영되면 나머지 파일에도 반영된다는 것을 의미합니다.

파이썬에서 하드 링크를 생성하려면 os.link() 함수를 사용합니다. 예를 들어, file1.txt라는 파일을 생성하고 이 파일에 대한 하드 링크인 link.txt를 생성하려면 다음과 같은 코드를 작성할 수 있습니다.

import os

file1 = "file1.txt"
link = "link.txt"

# file1.txt 파일 생성
with open(file1, "w") as f:
    f.write("Hello World!")

# 하드 링크 생성
os.link(file1, link)

위의 코드는 file1.txt 파일을 생성하고 그 파일에 대한 하드 링크인 link.txt를 생성합니다. link.txt 파일을 읽으면 “Hello World!”라는 텍스트가 포함되어 있는 것을 확인할 수 있습니다.

심볼릭 링크(Symbolic Link)란?

심볼릭 링크는 원본 파일이나 디렉토리에 대한 참조를 포함한 새로운 파일이나 디렉토리입니다. 이 말은, 심볼릭 링크 파일과 원본 파일이 별개의 엔티티로 존재하며, 원본 파일에 대한 변경 사항이 심볼릭 링크에는 영향을 주지 않는다는 것을 의미합니다.

파이썬에서 심볼릭 링크를 생성하려면 os.symlink() 함수를 사용합니다. 예를 들어, file2.txt라는 파일을 생성하고 이 파일에 대한 심볼릭 링크인 symlink.txt를 생성하려면 다음과 같은 코드를 작성할 수 있습니다.

import os

file2 = "file2.txt"
symlink = "symlink.txt"

# file2.txt 파일 생성
with open(file2, "w") as f:
    f.write("Hello World!")

# 심볼릭 링크 생성
os.symlink(file2, symlink)

위의 코드는 file2.txt 파일을 생성하고 그 파일에 대한 심볼릭 링크인 symlink.txt를 생성합니다. symlink.txt 파일을 읽으면 “Hello World!”라는 텍스트가 포함되어 있는 것을 확인할 수 있습니다.

결론

하드 링크와 심볼릭 링크는 파일 시스템에서 파일을 참조하고 연결하는 강력한 기능입니다. 이를 활용하여 파일을 다룰 때 효율적으로 작업할 수 있습니다. 파이썬을 사용하여 파일의 하드 링크와 심볼릭 링크를 생성하는 방법을 알아보았는데, 이를 통해 파일 시스템을 다루는 프로그램을 더욱 유연하게 작성할 수 있습니다.