mrg는 macOS에서 생성되는 잡다한 파일들을 제거하거나 파일명을 유니코드로 정규화할 때 사용하는 CLI 유틸리티입니다.

mrg의 기능

  • 유니코드 파일명 NFC 정규화(--bad-unicode): 자모 분리 현상을 해결합니다.
  • .DS_Store 파일 삭제(--ds-store): 폴더를 파인더로 열람했을 때 생성되는 .DS_Store 파일을 삭제합니다.
  • ._* 파일 삭제(--dot): macOS에서 메타데이터나 인덱싱 정보 등을 저장하는 ._* 파일을 삭제시킵니다.

mrg의 특징

  • ANSI 컬러 지원: mrg는 예쁜 터미널 색상을 지원합니다. 색상을 통해 직관적으로 디렉토리의 상태를 확인하실 수 있습니다. 물론 NO_COLOR 환경 변수를 통해서 비활성화도 가능합니다.
  • 예쁜 분석 리포트 제공: mrg를 통해 스캔하거나 정리할 경우 결과에 대해 예쁜 분석을 제공합니다. 이를 통해 mrg가 스캔하고 정리한 것들에 대해 한눈에 확인하실 수 있습니다.
  • json 분석 리포트 제공: 인간을 위한 예쁜 분석에 더해 기계로 읽을 수 있는 JSON 형식의 분석 또한 제공됩니다.
  • python API 제공: mrg는 파이썬 모듈로도 사용할 수 있습니다. 파이썬의 mrg 모듈을 통해 mrg를 파이썬을 통해 실행하거나 커스터마이즈할 수 있습니다.
  • 외부 의존성 없음: mrg는 런타임에서 파이썬에서 기본으로 제공하는 라이브러리 외에 어떠한 외부 라이브러리도 사용하지 않았습니다.

설치하기

homebrew를 통해 mrg를 설치하실 수 있습니다.

brew tap ilotoki0804/homebrew-mrg  
brew install mrg  

uv를 사용하는 경우 uvx mrg를 통해서도 설치하실 수 있습니다.

사용법

mrg는 기본적으로 path를 인자로 받습니다. 디렉토리를 검사하려면 아래와 같이 mrg 명령어 뒤에 경로를 입력하시면 됩니다.

mrg .  

다른 인자 없이 이렇게만 작성할 경우 기본적으로 '스캔 모드'가 됩니다.
이 상태에서는 어떠한 파일도 변경하지 않으며, 단순히 디렉토리의 상태를 조사한 뒤 분석 결과를 제공합니다.

실제로 파일을 정리하거나 수정하려면 인자를 붙여야 합니다. 다음의 인자 중 하나 이상을 붙여서 디렉토리를 정리할 수 있습니다.

  • --dot: ._* 파일을 삭제합니다. 기본적으로는 일반적인 크기를 가지고 있고 대응하는 파일이 존재하는 경우에만 삭제합니다.
  • --bad-unicode: NFC 정규화되지 않은 유니코드 파일/폴더명을 정규화합니다.
  • --ds-store: .DS_Store 파일을 삭제합니다.

예를 들어 . 디렉토리 내의 모든 파일과 디렉토리를 NFC로 정규화하려면 다음과 같은 코드를 사용할 수 있습니다.

mrg . --bad-unicode  

만약에 --bad-unicode, --ds-store, --dot을 모두 동시에 실행하고 싶을 때는 --all 플래그를 사용하실 수 있습니다.

mrg . --all  

mrg는 macOS에서 생성된 정크 파일들을 정리한다는 의미로 macOS와 쓰레기를 합성한 '멕레기'의 두문자어입니다.

완전한 설명은 링크를 참고해 주세요. Apache 2.0으로 공개된 오픈 소스 툴이며 PR, 이슈 등 모두 환영합니다.

문서 (한국어) / 문서 (영어)