안녕하세요.
저는 모든 작업물을 드롭박스 폴더에 올려두고 사용하고 있습니다.
집, 사무실, 노트북 등 자료를 동기화해서 사용하는데, 종종 '충돌된 사본'이 생겨 불필요한 용량을 잡아먹는 경우가 생깁니다.
실수로 작업물을 저장하지 않고, 중복 작업을 한다거나 중복으로 빌드가 된다거나 하는 경우인데요,
(https://help.dropbox.com/ko-kr/organize/conflicted-copy)
가끔 git 폴더 내부에 충돌된 사본이 생겨 폴더를 하나하나 삭제해주곤 했습니다.
그러다가 전체 폴더를 훑어서 '충돌된 사본'이 포함된 파일을 조회하고 삭제하면 좋겠다고 생각하여 아래 스크립트를 만들었습니다.
https://gist.github.com/codemoo/1598e19d43ae8856005ca43d5ec241db
요즘 세상에 당연하게도, 저는 지시만 하고 chatgpt가 만들어주었습니다.
사용방법은 다음과 같습니다.
0. 위 gist에서 코드 복사 후 파일 생성 (e.g. nano scan_dropbox_conflicts.sh)
1. 권한 부여
chmod +x scan_dropbox_conflicts.sh
2. 실행
./scan_dropbox_conflicts.sh --fast --trash ~/Dropbox
옵션 설명
--fast : macos에서 spotlight index를 이용해 파일을 빠르게 찾습니다. 이 옵션이 없을 경우 파일을 하나하나 다 찾습니다.
--trash : 이 옵션이 활성화되면 rm -rf 등으로 완전 삭제 대신 휴지통으로 파일을 이동시킵니다.
마지막 인자에 경로를 넣지 않을 경우 현재 폴더 기준으로 작업을 진행합니다.
언젠가 만들어야지 생각만 하고 미루다가 만든김에 공유드립니다.
리눅스에서도 사용 가능하도록 작업하였는데, 테스트는 진행하지 못했습니다.
파일명에 중복과 관련된 정보가 없다면 힘들 것 같습니다.
1. 파일명에 '중복' 등 문자열이 있을 경우
- 이 스크립트 그대로 사용 가능합니다.
2. 파일명이 동일한 파일이 여러개일 경우
- 동일한 파일명을 조회해서 1개만 남기고 삭제하기로 수정하면 될 것 같습니다.
3. 파일명이 다르지만, 이미지 자체가 같은 경우
- 파일 전체를 조회해서 md5 해시 등으로 이미지를 변환하고, 동일한 파일들을 찾으면 해결될 것 같습니다.