Watch at Ease세상을 읽고, 일상의 답을 찾다.

사용 가이드 · 실용 가이드

확인 목록으로 선택한 Obsidian 노트와 첨부 파일 복사하기

직접 확인할 수 있는 소량의 파일이라면 볼트 기준 상대 경로만 적은 매니페스트를 만들고, 모든 대상 경로를 미리 확인한 뒤 새 폴더에만 복사하고 각 파일의 SHA-256을 검증한 후 결과를 별도 볼트로 엽니다.

확인 표시가 있는 파일 매니페스트가 소스 폴더 트리에서 선택한 노트와 첨부 파일 카드를 새 폴더 트리의 같은 상대 경로로 연결한다.
Watch at Ease 원본 개념 일러스트: 쓰기를 허용하기 전에 정확한 상대 경로 복사 계획을 미리 확인합니다. Watch at Ease

Obsidian 볼트 전체는 일반 폴더이므로 통째로 옮기기 쉽습니다. 하지만 몇 개의 노트와 그 노트가 실제로 사용하는 첨부 파일만 옮기는 일은 더 어렵습니다. 링크 형식이 다양하고 첨부 폴더도 설정할 수 있어 표시된 파일 이름만으로 경로를 추측하면 안전하지 않습니다.

이 가이드는 의도적으로 범위를 좁혔습니다. 직접 연결된 로컬 파일을 수동으로 확인하고, 정확한 볼트 기준 상대 경로를 나열하고, 계획을 검토하고, 새 대상에만 복사한 뒤 매니페스트의 각 파일을 SHA-256으로 검증합니다. Markdown을 분석하지 않으며 종속 파일 목록의 완전성을 보장하지도 않습니다.

1. 직접 목록화할 수 있는 소규모 파일 집합에만 사용하기

소스 볼트를 사용하지 않는 상태로 두세요. 선택한 노트의 모든 임베드 파일과 로컬 링크를 하나씩 확인합니다. Obsidian 문서에 따르면 첨부 파일은 볼트 안의 일반 파일이며, 위치는 볼트 및 폴더 설정에 따라 달라질 수 있습니다. 화면에 보이는 링크 텍스트로 추측하지 말고 디스크의 실제 파일을 찾으세요.

이 도구는 자동 내보내기가 아닙니다. Wiki 링크를 따라가지 않고, 연결된 노트를 재귀적으로 처리하지 않으며, 모든 URL 형식을 해석하거나 누락된 자산을 찾아내지 않습니다. 종속 관계를 자동으로 완성해야 한다면 최신 플러그인이나 전용 내보내기 도구를 사용하세요.

2. 정확한 매니페스트와 소스 파일 목록 만들기

볼트 밖에 UTF-8 텍스트 파일을 만듭니다. 한 줄에 정확한 상대 경로 하나를 슬래시로 적으세요. 예를 들어 Notes/Project brief.md, Assets/diagram.png, Other/diagram.png를 각각 다른 줄에 둡니다. 디렉터리를 유지하면 이름이 같은 파일도 구분할 수 있습니다. 빈 줄, 점 경로 요소, 상위 폴더 이동, 절대 경로, 역슬래시, 중복 항목 또는 대소문자를 무시하면 같은 항목은 거부됩니다.

소스 볼트, 새 대상, 매니페스트 SHA-256, 파일 수를 기록하고 소스 백업을 보관합니다. 이 검증은 내용 해시를 비교할 뿐 접근 시간, 확장 속성 또는 모든 파일 시스템 메타데이터를 보존하지는 않습니다.

3. 먼저 쓰기가 없는 계획 실행하기

아래의 ‘복사 스크립트 다운로드(.py)’를 누르거나 https://watchatease.com/news/tools/manifest-copy-1a2d9dca.py 을 열고 원본 파일을 manifest_copy.py로 저장하세요. 이 절차는 Linux Python 3.12.14에서 테스트했습니다. 다운로드 폴더에서 sha256sum manifest_copy.py를 실행해 결과가 1a2d9dca3bc1e66feb55e3f639d9b32318084266ba76494f5a2f079b4a0773e2 인지 확인하고 다르면 중단하세요. 다음으로 python3 manifest_copy.py --source '/path/to/source-vault' --manifest '/path/to/paths.txt' --target '/path/to/new-vault'를 실행합니다. 세 예시 경로를 실제 경로로 바꾸세요. --apply를 넣지 않으면 정확한 경로, 바이트 수, 해시를 출력하고 writesPerformed:false로 표시할 뿐입니다.

전체 계획을 읽고 모든 대상 경로를 확인하세요. 도구는 소스 트리 전체의 심볼릭 링크와 NFC 정규화 및 대소문자 접기 후의 충돌을 검사하므로, 관련 없는 심볼릭 링크나 Assets/A.PNG와 Assets/a.png 같은 조합도 실행을 막습니다. 이 거부를 우회하지 마세요.

4. 존재하지 않는 새 대상에 한 번만 적용하기

계획이 맞으면 --apply를 추가해 다시 실행합니다. 대상은 존재하지 않아야 하고, 상위 디렉터리는 이미 있어야 하며, 대상은 소스 볼트 내부에 있을 수 없습니다. 배타적 파일 생성은 기존 대상을 덮어쓰지 않고 오류로 처리합니다. 목록에 적힌 파일만 복사됩니다.

새 볼트를 열기 전에 적용 결과를 읽으세요. ok:true와 allListedFilesVerified:true가 표시되고, 목록의 각 파일에 verified:true가 있으며 원본·복사본·복사 후 원본의 SHA-256이 일치해야 합니다. 이는 목록에 적힌 바이트만 검증합니다. 첨부 파일이 목록에서 빠지지 않았는지 또는 Obsidian에서 노트가 올바르게 표시되는지는 확인하지 않습니다.

5. 열거나 삭제하기 전에 검증하기

영수증은 파일 시스템 확인 자료이지 Obsidian 인수 테스트가 아닙니다. 개수와 경로를 확인하고 대상 해시를 별도로 비교한 다음, 새 폴더를 별도 볼트로 열어 노트와 첨부 파일을 검토합니다. 픽스처에서는 GUI 렌더링을 테스트하지 않았습니다.

새 볼트가 검토를 통과하고 자체 백업을 갖기 전까지 소스를 변경하지 마세요. 누락 파일이 있다면 수동 목록을 수정하고, 부분적으로 만들어진 디렉터리에 합치지 말고 존재하지 않는 다른 새 대상을 사용하세요.

6. 거부 조건을 안전 경계로 다루기

적용에 실패하면 일부만 만들어진 대상이 남을 수 있습니다. 오류를 보관해 원인을 확인하고 존재하지 않는 다른 대상을 선택하세요. 파일 누락, 디렉터리 항목, 경로 순회, 절대 경로, 중복, 심볼릭 링크, 기존 대상, 대소문자 또는 Unicode 충돌은 의도된 거부 조건입니다.

26개 픽스처는 Linux Python 3.12.14에서만 실행했고 동시에 파일이 바뀌지 않는다고 가정했습니다. Windows 경로 동작, macOS 정규화, Obsidian GUI 렌더링, 동기화 클라이언트는 테스트하지 않았습니다. 이런 조건이나 대량 작업에서는 유지 관리되는 내보내기 도구 또는 플러그인을 검토하고 두 볼트를 모두 백업하세요.

일반적인 파일 지문 행들이 원본, 복사본, 복사 후 원본 값을 비교하며, 일치하지 않는 한 행은 경고로 분리되어 있다.
Watch at Ease 원본 개념 일러스트: 원본·복사본·복사 후 원본 해시가 일치한 파일만 승인하고 부분 실행은 분리합니다. Watch at Ease