블로그로 돌아가기

파일이 추가되면 셸 명령 자동 실행하기 (Windows · Mac)

폴더에 파일이 들어오는 순간 셸 명령이나 스크립트를 자동으로 실행하는 방법입니다. Windows와 Mac 모두에서 작업 스케줄러도, cron도, AppleScript도 필요 없습니다. 실제 설정 절차와 명령 예시를 소개합니다.

2026년 6월 16일
File Arbor Team

예전에는 폴더에 파일이 들어올 때 명령을 실행하려면 Windows에서는 작업 스케줄러, Mac에서는 cron이나 AppleScript, 아니면 이미 Mac을 쓰고 있다면 Hazel을 거쳐야 했습니다. File Arbor는 이것을 규칙 하나로 처리합니다. 폴더를 고르고, 파일을 매칭하고, 명령 실행을 선택하면, 일치하는 파일마다 스크립트가 한 번씩 실행됩니다 — Windows와 macOS에서 같은 방식으로요. 1.1.0 버전에 추가된 Pro 기능입니다.

이 가이드에서는 설정 방법, 사용할 수 있는 변수, 믿고 맡기기 전에 명령을 테스트하는 방법, 그리고 그대로 가져다 쓸 만한 몇 가지 레시피를 다룹니다.

생각보다 까다로운 일이었던 이유

원하는 건 단순합니다. "여기에 파일이 나타나면 뭔가 처리해줘." 그런데 도구는 보통 그렇게 단순하지 않습니다.

macOS에서는 Hazel이 오래전부터 셸 스크립트를 규칙 액션으로 실행해 왔습니다. 훌륭한 기능이지만 — Mac 전용입니다. Windows를 쓴다면 Hazel은 선택지가 아니고, 앞으로도 그럴 일은 없습니다.

기본 제공 방법들은 손이 많이 갑니다. Windows 작업 스케줄러는 배치 파일을 타이머에 맞춰 실행할 수 있지만, 폴더가 아니라 시계를 보고 움직이며 매칭 로직은 forfiles나 PowerShell로 직접 작성해야 합니다. macOS에서는 폴더 액션과 cron이 작동하긴 하지만 AppleScript나 셸 연결 코드를 엮고 콘솔에서 디버깅해야 합니다. 게다가 이 방법들 중 어느 것도 어떤 파일이 처리됐는지, 각 명령이 무엇을 출력했는지 목록으로 보여주지 않습니다.

사람들이 정말 원하는 건 규칙입니다. 파일을 매칭하고, 명령을 실행하고, 무슨 일이 있었는지 확인하는 것. File Arbor의 명령 실행 액션이 두 플랫폼 모두에서 바로 그 빈틈을 메웁니다.

명령 실행 액션이 하는 일

File Arbor 규칙은 IF/THEN 쌍입니다. IF 쪽은 확장자, 이름 패턴, 전체 정규식, 크기, 경과 일수로 파일을 매칭합니다. THEN 쪽이 액션입니다. 명령 실행은 이동, 이름 바꾸기, 휴지통으로 이동, 영구 삭제와 함께 선택할 수 있는 액션 중 하나입니다.

파일이 일치하면 — 수동 실행이든 예약 실행이든 감시 폴더에 도착하는 순간이든 — File Arbor는 그 파일에 대해 명령을 한 번 실행합니다. Windows에서는 시스템 셸을 통해 실행되므로 배치 문법, PowerShell, PATH에 있는 모든 것이 작동합니다. macOS에서도 셸을 통해 실행되므로 평소 쓰던 명령줄 도구를 그대로 쓸 수 있습니다. 같은 규칙 모델, 같은 편집기, 두 플랫폼 모두.

명령 실행은 Pro 기능입니다. 무료 플랜을 쓰고 있다면 Pro 라이선스로 잠금을 해제할 수 있습니다 — 1회 결제, 30일 환불 보장.

파일이 추가될 때 명령을 실행하는 방법

전체 설정 과정입니다. 약 2분이면 끝납니다.

  1. 감시할 폴더를 추가합니다. Add folder를 클릭하고 파일이 도착하는 곳을 고릅니다 — Downloads, 프로젝트 폴더, 스캐너 출력 디렉터리 등 작업 방식에 맞는 어디든.
  2. 규칙을 만들고 조건을 설정합니다. 규칙을 추가하고 IF 쪽을 정의합니다. 확장자(.md), 이름 패턴, ^invoice_\d{4}\.pdf$ 같은 정규식, 크기 기준, 경과 일수로 매칭하세요. 일치하는 파일만 명령을 발동합니다.
  3. 액션으로 명령 실행을 선택합니다. THEN 쪽에서 명령 실행을 선택하고 명령을 입력합니다. 파일의 경로나 이름이 필요한 곳에는 아래 변수를 사용하세요.
  4. 샘플 파일로 명령을 테스트합니다. 테스트를 클릭하세요. File Arbor가 샘플에 대해 명령을 한 번 실행하고 종료 코드, 출력, 소요 시간을 보여줍니다. 무인 실행에 들어가기 전에 여기서 고치세요.
  5. 규칙을 저장하고 자동 모드를 켭니다. 규칙을 저장한 뒤 자동 모드를 켜면 파일이 도착하는 즉시 실시간으로 실행됩니다. 규칙을 수동으로 또는 예약 실행으로 돌릴 수도 있습니다.

이게 전부입니다. 배치 파일도, 예약 작업도, 규칙과 따로 관리해야 할 스크립트 파일도 없습니다.

사용할 수 있는 변수

명령 안에서 세 가지 변수를 쓸 수 있습니다.

  • {filePath} — 일치한 파일의 전체 경로
  • {fileName} — 확장자를 포함한 파일 이름
  • {folder} — 파일이 들어 있는 폴더

따옴표 처리는 File Arbor가 알아서 하므로 공백이 포함된 경로도 직접 따옴표로 감쌀 필요 없이 작동합니다. "{filePath}"가 아니라 {filePath}라고만 쓰면 됩니다.

믿고 맡기기 전에 테스트하세요

무인으로 실행되는 명령은 제대로 작동한다는 확신이 있어야만 쓸모가 있습니다. 두 가지가 이를 안전하게 해줍니다.

테스트 버튼은 샘플 파일에 대해 명령을 한 번 실행하고 종료 코드, 출력, 소요 시간을 알려줍니다. 규칙을 저장하기 전에 명령이 정확히 무엇을 하는지 눈으로 확인할 수 있습니다.

명령 실행 기록 패널은 실제 실행을 모두 기록합니다 — 명령, 파일, 종료 코드, 전체 출력까지. 새벽 3시에 무언가 실패해도 추측할 필요가 없습니다. 확인할 때 출력이 그대로 거기 있습니다.

그대로 가져다 쓸 만한 실전 예제

메모를 git 저장소에 자동 커밋하기. 메모 폴더에 Markdown 파일을 넣으면 자동으로 커밋되게 합니다.

  • 감시: C:\Projects\notes (Mac에서는 ~/Projects/notes)
  • 조건: 확장자가 .md
  • 명령: git -C {folder} add {fileName} && git -C {folder} commit -m "Add {fileName}"

파일이 도착하는 순간 동영상 압축하기. 화면 녹화를 다시 인코딩해 용량을 줄입니다.

  • 조건: 확장자가 .mov
  • 명령: ffmpeg -i {filePath} -vcodec libx265 -crf 28 {folder}/compressed-{fileName}

완성된 내보내기 파일을 외부로 업로드하기. rsync나 scp로 렌더링 결과를 백업 서버에 보냅니다.

  • 조건: 이름이 export_로 시작
  • 명령: rsync {filePath} backup:/media/incoming/

특정 파일이 도착하면 알림 받기. 데스크톱 알림이나 웹훅을 발동해 인보이스나 보고서가 들어온 것을 바로 알 수 있게 합니다.

패턴은 언제나 같습니다. 파일을 매칭하고, 이미 쓰고 있는 도구를 실행하는 것. File Arbor는 방아쇠이자 파일 선택기이고, 실제 작업은 당신의 명령이 합니다.

Hazel의 셸 스크립트와 비교하면

Hazel 워크플로에서 넘어왔다면 대응 관계가 직관적입니다. Hazel의 "셸 스크립트 실행" 액션과 File Arbor의 명령 실행 액션은 둘 다 일치한 파일마다 명령을 실행하며 파일 경로에 접근할 수 있습니다. 차이는 지원 범위입니다. Hazel은 macOS에서만 실행되지만, File Arbor는 같은 규칙을 Windows와 Mac에서 실행합니다. 더 자세한 비교는 File Arbor와 Hazel 비교를 참고하세요.

File Arbor가 따라 하지 않는 것은 Hazel의 macOS 전용 스크립팅 훅입니다 — AppleScript와 Spotlight 메타데이터 조건이죠. 자동화가 이런 기능에 의존한다면 Mac에서는 여전히 Hazel이 한 수 위입니다. 하지만 파일에 대해 명령과 스크립트를 실행하는 일이라면 둘은 대등합니다.

제한과 안전장치

중요한 자동화를 구성하기 전에 알아둘 몇 가지입니다.

  • 파일당 한 번 실행. 일치한 파일은 명령을 한 번 발동하며, 반복 실행되지 않습니다.
  • 30초 타임아웃. 명령은 기본 30초 후 타임아웃되므로, 멈춘 스크립트가 다른 규칙을 막을 수 없습니다.
  • Microsoft Store 빌드에는 없음. 스토어 정책상 앱이 임의의 명령을 실행하는 것이 막혀 있어, 스토어 버전에는 명령 실행이 빠져 있습니다. 직접 다운로드 버전에는 포함되어 있습니다.

명령 하나로 시작하세요

손으로 반복하는 파일 작업 하나를 골라보세요 — 커밋, 압축, 업로드 같은 것 — 그리고 규칙 하나로 바꿔보세요. File Arbor 다운로드 후 무료 플랜으로 시작하거나, 1.1.0에 추가된 다른 기능들을 읽어보세요. 앱이 처음이신가요? 시작 가이드를 따라 약 5분이면 첫 규칙을 만들 수 있습니다.

자주 묻는 질문

File Arbor도 Hazel처럼 셸 스크립트를 실행할 수 있나요?

네. File Arbor의 명령 실행 액션은 일치하는 파일마다 한 번씩 셸 명령이나 스크립트를 실행하며, {filePath}, {fileName}, {folder} 변수를 사용할 수 있습니다. Hazel의 셸 스크립트 액션과 같은 일을 하면서, Hazel이 지원하지 않는 Windows에서도 작동합니다. Pro 기능입니다.

파일 이벤트에 따라 명령을 실행하는 기능이 Windows에서도 되나요?

네. File Arbor는 Windows와 macOS 모두에서 명령을 실행합니다. Windows에서는 시스템 셸을 통해 실행되므로 배치 명령, PowerShell, PATH에 있는 모든 도구가 작동합니다. 작업 스케줄러나 별도의 배치 파일이 필요 없습니다.

명령 실행 액션은 무료 버전에서도 쓸 수 있나요?

아니요. 명령 실행은 Pro 기능입니다. Pro는 24.99달러 1회 결제이며 30일 환불 보장이 제공됩니다. 무료 플랜에는 이동, 이름 바꾸기, 휴지통으로 이동 액션이 포함됩니다.

Microsoft Store 버전에는 왜 명령 실행이 없나요?

Microsoft Store 정책상 앱이 임의의 명령을 실행하는 것이 제한되므로, 스토어 빌드에는 명령 실행 액션이 빠져 있습니다. filearbor.com에서 File Arbor를 직접 다운로드하면 사용할 수 있습니다. 그 외 모든 기능은 두 빌드가 동일합니다.

명령이 멈추거나 실패하면 어떻게 되나요?

명령은 기본 30초 후 타임아웃되므로, 멈춘 스크립트가 규칙 전체를 막을 수 없습니다. 모든 실행은 종료 코드와 전체 출력과 함께 명령 실행 기록 패널에 남으므로, 새벽 3시에 실패가 발생해도 확인할 때 자세한 내용이 그대로 기다리고 있습니다.