Fylex: 스마트한 파일 복사 도구의 혁신
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 개발자, DevOps 엔지니어, 데이터 과학자, QA 테스터 등 대규모 파일 이동, 백업, 동기화가 필요한 분야에 해당
- 난이도: 중간 (Python 기초 지식 필요, CLI 명령어 사용 경험 유리)
핵심 요약
xxhash
기반 해시 비교를 통해 중복 파일 제거 및 내용 기반 복사 (예:shutil.copy()
보다 정확성 향상)- 정규식 및 glob 필터링으로 필요한 파일만 선택적 복사 (예:
--match-regex "^[a-z]+\.py$"
명령어) - 멀티스레딩과 스마트한 충돌 해결 전략(rename, skip, replace)으로 대규모 파일 전송 최적화
섹션별 세부 요약
1. **Fylex 소개 및 동기**
- 기존 도구(
cp
,shutil.copytree()
)의 한계(예: 중복 처리 불가, GUI에 의존)를 해결하기 위해 개발 - Python CLI 도구로, 파일 복사 시 정확성과 효율성 강조
2. **핵심 기능**
- 해시 기반 비교:
xxhash
사용으로 파일 내용 기반 중복 확인 (예:--on-conflict rename
명령어) - 필터링 기능: 정규식(
--match-regex
) 및 glob(--match-glob "*.txt"
)으로 파일 선택 - 스마트 충돌 해결: 이름 변경, 건너뛰기, 크기/날짜 기반 대체, 사용자 확인 등 4가지 모드 제공
- 다중 스레드 성능: 대규모 파일 이동 시 병렬 처리로 속도 향상 (예:
--dry-run
으로 미리보기)
3. **사용 예시 및 명령어**
- 기본 복사:
fylex --src myfiles --dest backup --match-glob "*.txt" --on-conflict rename
- 필터링 + 드라이 런:
fylex --src . --dest ../mirror --match-regex "^[a-z]+\.py$" --on-conflict skip --dry-run --verbose
- 로그 기능:
--verbose
로 시간戳 기반 로그 생성
4. **사용자 대상 및 활용 시나리오**
- 코드베이스 이동: 중복 파일 제거 및 정확한 백업
- DevOps 엔지니어: 파일 구조 동기화 시 효율성 향상
- 데이터 과학자: 대규모 데이터셋 정리 및 복제
- QA 테스터: 파일 기반 테스트 환경 자동화
결론
- Fylex는 MIT 라이선스로 오픈소스이며,
cp
대신 사용 가능 (예:pip install fylex
설치) - 현재 개발 중 기능: 재귀 폴더 지원, 실시간 진행률 표시, 클라우드 동기화 확장 (S3, GDrive)
- 실무 적용 팁:
--dry-run
으로 복사 전 예상 결과 확인 후 실행,--verbose
로 디버깅 용이
> 핵심 추천: 대규모 파일 복사 시 xxhash
기반 중복 제거 및 스레드 병렬 처리 기능 활용하여 효율성 극대화