環境変数

CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT

1を設定すると、コマンド置換の出力のみを対象とする再帰的 rm の重要パスチェックを無効にする。例: rm -rf "$(pwd)"。他の重要パスチェックは引き続き実行される。設定は Claude Code を起動する環境で行う必要がある。Claude Code は設定 env ブロックで渡されたコピーを無視するためである。Claude Code v2.1.281 以降が必要

使い方・用途

  • rm -rf "$(pwd)" のようにコマンド置換の出力のみを対象とする再帰的 rm に対する確認プロンプトを無効化する
  • 以前はこのような rm が自動モードや --dangerously-skip-permissions で確認なしに実行されていたが、確認が追加され、この変数を 1 にした場合のみ確認が省略される
  • 他の重要パスチェックは引き続き実行される
  • 起動環境の環境変数としてのみ読まれ、settings.json の env ブロックに書いても無視される点に注意
英語原文(公式ドキュメントより)

Set to 1 to turn off the critical-path check for a recursive rm whose target is entirely the output of a command substitution, such as rm -rf "$(pwd)". The other critical-path checks keep running. Set it in the environment that launches Claude Code, since Claude Code ignores a copy delivered through a settings env block. Requires Claude Code v2.1.281 or later

関連ドキュメント

関連する変更履歴

v2.1.281(1件)

Fixed
コマンド置換の出力のみを対象とする再帰的な rm コマンド(例: rm -rf "$(pwd)")が、自動モードや --dangerously-skip-permissions モードで確認なしに実行される問題を修正。Bash の許可ルールがあっても確認を求めるようになり、CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1 を付けて実行した場合のみ確認が省略される。
英語原文を表示
Fixed a recursive rm whose target is only command-substitution output, such as rm -rf "$(pwd)", running unprompted in auto and --dangerously-skip-permissions mode; it now asks even with a Bash allow rule, unless run with CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1

変更前

rm -rf "$(pwd)" のようなコマンド置換の出力のみを対象とする再帰的な rm コマンドが、自動モードや --dangerously-skip-permissions モードで確認なしに実行されていた。Bash の許可ルールがある場合でも確認は表示されなかった。

変更後

コマンド置換のみを対象とする再帰的な rm コマンドでも、自動モードや --dangerously-skip-permissions モードで実行前に確認を求めるようになった。Bash の許可ルールが一致する場合でも確認を挟む。

ユーザーへの恩恵

モデルのミスやコマンド置換による予期しないパス解決から重要なパスを守れるようになる。

関連ドキュメント