[파이썬] shutil `shutil.copytree()`에서 `symlinks` 매개변수 사용하기

파이썬 shutil 모듈은 파일 및 디렉토리 작업을 보다 효과적으로 처리할 수 있는 함수들을 제공합니다. shutil.copytree() 함수는 디렉토리와 그 하위 항목들을 복사하는데 사용됩니다. 이 함수에는 symlinks라는 옵션을 설정하여 심볼릭 링크를 다룰 수 있는 기능을 포함하고 있습니다.

심볼릭 링크(또는 소프트 링크)는 파일이나 디렉토리에 대한 참조를 가리키는 파일입니다. 이 링크를 사용하면 파일이나 디렉토리를 다른 위치에 저장하거나 공유할 수 있는 유연성을 제공합니다. shutil.copytree() 함수는 심볼릭 링크나 해당 링크가 가리키는 원본 항목을 복사하는 기본 동작을 수행합니다.

그러나 때로는 심볼릭 링크를 실제로 복사하고자 할 때가 있습니다. 이럴 경우, shutil.copytree() 함수의 symlinks 매개변수를 True로 설정하여 심볼릭 링크를 복사하도록 지정할 수 있습니다. 기본적으로 symlinks 매개변수는 False로 설정되어 있습니다.

다음은 shutil.copytree() 함수를 사용하여 심볼릭 링크를 복사하는 예제 코드입니다:

import shutil

src_dir = '/path/to/source/dir'
dest_dir = '/path/to/destination/dir'

shutil.copytree(src_dir, dest_dir, symlinks=True)

위 코드에서 symlinks=True로 설정하면, src_dir의 모든 심볼릭 링크와 실제 파일이나 디렉토리를 dest_dir로 복사합니다.

심볼릭 링크를 복사하는 경우, 원본 링크가 참조하는 대상이 존재하지 않을 경우 워닝이 발생합니다. 이는 링크가 유효한지 확인하기 위한 안전장치입니다.

심볼릭 링크를 실제로 복사해야 하는 경우에는 shutil.copytree() 함수의 symlinks 매개변수를 True로 설정하면 됩니다. 이렇게하면 원본 심볼릭 링크와 실제 파일 또는 디렉토리를 복사합니다.