Skip to content
isdnetworks
Go back

옮기면서 다시 짠 분류

(수정됨)

서버 이관으로 문서 파일 수백 개를 새 NAS 로 옮기게 되어 그대로 옮길지 정리하면서 옮길지 정해야 했다. 옛 구조는 2017/·2018/ 연도별인데 그렇지 않은 폴더가 섞여 있었고 절반이 기타/ 에 들어 있었다.

Table of contents

Open Table of contents

증상 — 연도와 기타가 섞인 옛 구조

2018/ 과 기타/ 와 temp/ 와 새 폴더/ 와 중요/ 가 같은 층에 있었다. 축이 섞여 있어서 무엇을 찾으려면 결국 전부 뒤져야 했다.

기타가 절반이라는 것은 분류가 실제와 안 맞는다는 신호였다. 그 상태를 그대로 옮기면 새 저장소에서도 똑같이 못 찾는다.

판단 기준 — 어차피 만질 때 정리하는 편이 싸다

두 가지 길이 있었다. rsync -a 한 번으로 그대로 옮기면 빠르지만 옮긴 뒤에도 못 찾는다. 정리하면서 옮기면 오래 걸리는 대신 옮긴 값이 남는다. 뒤쪽을 골랐다.

옮기는 것 자체가 전부 손대는 일이므로 그때 정리하는 비용이 나중에 따로 하는 것보다 쌌다. 근거는 한 번 만질 때 정리하는 것과 두 번 만지는 것의 차이였다.

무엇이 있는지 먼저 훑기

정리하려면 무엇이 있는지 알아야 하므로 find . -type f | sed 's/.*\.//' | sort | uniq -c 로 확장자별 개수를 세고 파일 이름을 훑었다. 이름을 보니 계약과 기술 문서와 회의록과 보고서 몇 갈래로 나뉘었다.

미리 분류를 정하고 채우는 것이 아니라 무엇이 있는지 보고 갈래를 정하는 순서였다. 실제 내용에서 나온 분류라 억지로 끼워 넣을 자리가 적었다.

주의 — 안 맞는 것을 넣을 자리

어디에도 안 맞는 것을 넣을 자리 _미분류/ 를 하나 뒀다. 억지로 분류하면 나중에 그 자리에서 못 찾기 때문이다.

옮기고 나서 그 자리에 들어간 것이 전체의 십 분의 일이 안 됐으므로 분류가 대체로 맞았다고 봤다. 그 자리가 절반을 넘으면 분류 자체를 다시 짜야 한다는 신호로 삼기로 했다.

검증 — 대조와 대응표와 유예

연도는 폴더가 아니라 2018_계약_….pdf 처럼 파일 이름 앞에 넣었는데 폴더가 종류면 연도로 못 묶고 연도면 종류로 못 묶기 때문이다. 옮긴 뒤에는 개수만이 아니라 md5sum 으로 내용까지 대조했고, 이름이 바뀌었으므로 양쪽 목록에서 해시 열만 뽑아 comm -3 으로 맞췄다. comm 매뉴얼대로 -3 은 양쪽에 다 있는 줄을 숨기므로 남는 줄이 곧 빠지거나 깨진 파일이다.

옛 이름과 새 이름의 대응표 rename-map.tsv 를 남긴 것이 실제로 몇 번 쓸모가 있었는데 옛 문서가 파일 이름으로 참조하고 있었다. 옛 자리는 바로 지우지 않고 chmod -R a-w 로 읽기 전용으로 몇 달 두었는데 안 막으면 새 파일이 두 자리로 갈라지기 때문이다.

정리


Share this post on:

Previous Post
아무것도 가르지 못한 컬럼
Next Post
외주 산출물의 목적과 구성