Claude Code를 편하게 쓰면서도 파일 삭제 사고는 막고 싶은 분들을 위한 최소 설정 정리입니다.
이 설정은 하나의 맞바꿈입니다. 매번 승인받는 번거로움을 끄는 대신(bypassPermissions), 되돌릴 수 없는 삭제만 하드 차단하는 것입니다. 승인 확인을 그대로 유지하고 싶다면 defaultMode 줄은 빼고 deny 차단만 적용해도 됩니다.

bypassPermissions로 편하게 쓰면서도 파일 삭제·덮어쓰기 사고만 따로 막는 최소 설정.
Claude Code를 편하게 쓰면서도 파일 삭제 사고는 막고 싶은 분들을 위한 최소 설정 정리입니다.
이 설정은 하나의 맞바꿈입니다. 매번 승인받는 번거로움을 끄는 대신(bypassPermissions), 되돌릴 수 없는 삭제만 하드 차단하는 것입니다. 승인 확인을 그대로 유지하고 싶다면 defaultMode 줄은 빼고 deny 차단만 적용해도 됩니다.
설정 파일을 직접 편집하는 게 어렵다면, 이 글 전체를 Claude Code에게 시켜도 됩니다. 그대로 붙여넣으세요:
~/.claude/settings.json에 rm·rmdir·shred·unlink를 deny로 차단하는 permissions 설정을 추가해줘. 그리고 ~/.claude/CLAUDE.md에 "삭제는 rm 대신 trash 사용, mv는 항상 -n 플래그" 규칙을 적어줘.
아래는 그 결과로 만들어져야 할 내용입니다. 눈으로 확인할 때 쓰세요.
{
"permissions": {
"deny": [
"Bash(rm *)",
"Bash(rmdir *)",
"Bash(shred *)",
"Bash(unlink *)"
],
"defaultMode": "bypassPermissions"
}
}
CLAUDE.md는 Claude Code가 매 대화를 시작할 때 자동으로 읽는 내 규칙 메모입니다. 자세한 활용법은 구조 가이드에서 다루고, 여기서는 안전 규칙만 적습니다.
## File Safety
- 파일/디렉토리 삭제 시 rm, rmdir 대신 항상 trash 명령을 사용합니다.
- trash를 먼저 시도하고, rm을 폴백으로 사용하지 않습니다.
- mv 사용 시 항상 -n 플래그를 사용합니다.
- 대상이 이미 존재하면 덮어쓰지 않고 멈춘 뒤 사용자에게 확인합니다.
bypassPermissions → 나머지 작업은 승인 없이 편하게 진행할 수 있습니다.deny → rm, rmdir 같은 삭제 명령은 하드 차단됩니다.CLAUDE.md → Claude가 파일을 삭제할 때는 trash, 이동하거나 이름을 바꿀 때는 mv -n을 우선 사용하게 됩니다.즉, 평소에는 편하게 사용하면서도 파일 삭제나 덮어쓰기 사고만 따로 막는 설정입니다.
macOS 14(Sonoma)부터는 trash 명령이 기본 내장되어 있어 바로 쓰면 됩니다. 그 이전 버전이거나 command not found가 나오면 설치가 필요합니다:
brew install trash
(Homebrew가 없다면 Claude Code에게 "trash 명령을 쓸 수 있게 설치해줘"라고 시키는 게 가장 빠릅니다.)
trash-cli를 설치한 뒤 trash 명령을 사용하면 됩니다.
npm install -g trash-cli
Claude Code를 편하게 사용하려고 bypassPermissions를 켜두면 대부분의 작업을 승인 없이 진행할 수 있습니다.
문제는 이 상태에서 파일 삭제가 자동으로 처리될 수 있다는 점입니다.
그래서 아래 3가지를 같이 적용하는 것이 가장 안전합니다.
- settings.json deny → 삭제 명령 하드 차단
- CLAUDE.md 규칙 → trash 우선 + mv -n
- bypassPermissions → 나머지 작업은 자유롭게
즉, Claude Code를 편하게 쓰면서도 파일만 안전하게 지키는 설정입니다.
새 도구가 매달 쏟아져도, 무엇이 나오든 통하는 기준을 한 권으로 정리했습니다