Claude Code를 편하게 쓰면서도 파일 삭제 사고는 막고 싶은 분들을 위한 최소 설정 정리입니다.
1. 일단 이것만 바로 설정하시면 됩니다
~/.claude/settings.json
{
"permissions": {
"deny": [
"Bash(rm *)",
"Bash(rmdir *)",
"Bash(shred *)",
"Bash(unlink *)"
],
"defaultMode": "bypassPermissions"
}
}
~/.claude/CLAUDE.md
## File Safety
- 파일/디렉토리 삭제 시 rm, rmdir 대신 항상 trash 명령을 사용합니다.
- trash를 먼저 시도하고, rm을 폴백으로 사용하지 않습니다.
- mv 사용 시 항상 -n 플래그를 사용합니다.
- 대상이 이미 존재하면 덮어쓰지 않고 멈춘 뒤 사용자에게 확인합니다.
2. 이 설정으로 무엇이 달라지나요
bypassPermissions→ 나머지 작업은 승인 없이 편하게 진행할 수 있습니다.deny→ rm, rmdir 같은 삭제 명령은 하드 차단됩니다.CLAUDE.md→ Claude가 파일을 삭제할 때는 trash, 이동하거나 이름을 바꿀 때는 mv -n을 우선 사용하게 됩니다.
즉, 평소에는 편하게 사용하면서도 파일 삭제나 덮어쓰기 사고만 따로 막는 설정입니다.
3. OS별로 이것만 추가로 확인하시면 됩니다
macOS
trash 명령을 사용하면 됩니다.
Windows
trash-cli를 설치한 뒤 trash 명령을 사용하면 됩니다.
npm install -g trash-cli
4. 왜 이 설정이 필요한가요
Claude Code를 편하게 사용하려고 bypassPermissions를 켜두면 대부분의 작업을 승인 없이 진행할 수 있습니다.
문제는 이 상태에서 파일 삭제가 자동으로 처리될 수 있다는 점입니다.
- rm은 휴지통이 아니라 영구 삭제이기 때문에 위험합니다.
- mv는 같은 이름의 파일이 이미 있으면 덮어쓸 수 있습니다.
그래서 아래 3가지를 같이 적용하는 것이 가장 안전합니다.
- 삭제는 trash로 처리합니다.
- 이동 및 이름 변경은 mv -n으로 처리합니다.
- 삭제 명령 자체는 deny로 차단합니다.
5. 한 줄 요약
- settings.json deny → 삭제 명령 하드 차단
- CLAUDE.md 규칙 → trash 우선 + mv -n
- bypassPermissions → 나머지 작업은 자유롭게
즉, Claude Code를 편하게 쓰면서도 파일만 안전하게 지키는 설정입니다.