Claude Code 多項目、多目錄怎麼用:--add-dir、/add-dir 與 /cd 的區別,以及加進來的目錄哪些配置不生效

前端和後端分在兩個文件夾,Claude Code 卻只看得到啟動目錄?按官方 Permissions 與 CLI reference 講清 --add-dir、/add-dir、permissions.additionalDirectories 和 /cd 的區別,以及加進來的目錄哪些配置會加載、哪些不會。

NNathaniel bigo··原創首發·AI 輔助撰寫
10 分鐘讀完
資料核對於 2026-11-05 · 依據官方文檔與公開資料整理 Pro 帳號
本文根據 Claude Code 官方文檔《Configure permissions》《CLI reference》整理,資料核對於 2026-11-05。配圖為本站整理的示意圖,不是介面截圖。本站(bigolab.com)不是 Anthropic 官方網站。

適用於誰

  • 項目拆成了多個文件夾(前端、後端、公共庫、文檔),想讓 Claude Code 同時讀寫的人;
  • 加了目錄卻發現「它沒讀到那邊的 CLAUDE.md」「那邊的 Skill 沒生效」的人;
  • 分不清 --add-dir、/add-dir 和 /cd 的人。

結論先說

  1. 預設只能訪問啟動目錄。 官方說,Claude 預設可以訪問你啟動它的目錄裏的文件,這個目錄就是會話的主工作目錄。
  2. 擴展訪問有三種方式: 啟動時用 --add-dir <路徑>;會話中用 /add-dir;想長期生效,在設定文件裏寫 permissions.additionalDirectories。
  3. 附加目錄享受和主目錄同樣的權限規則。 讀文件不再逐個詢問,寫文件是否需要確認取決於當前權限模式。
  4. 加目錄只是給文件訪問權,不是把它變成第二個項目。 官方明確說:大部分 .claude/ 配置不會從附加目錄被發現,只有少數例外。
  5. 要把整個會話換到另一個項目,用 /cd,不是 /add-dir。 前者換主目錄並應用新目錄的配置,後者只是多開一扇門。

三種方式讓 Claude Code 訪問更多目錄

圖:本站根據 Claude Code 官方文檔:Permissions 整理的示意圖

一、三種加目錄的方式

假設你的項目是這樣放的:

text
work/
├── web/        # 前端
├── api/        # 後端
└── shared/     # 公共類型

方式一:啟動時加。 在 web 裏啟動,同時把另外兩個帶上。官方 CLI 參考裏的寫法是後面可以跟多個路徑:

bash
cd work/web
claude --add-dir ../api ../shared

官方說明 --add-dir 會校驗每個路徑必須是已存在的目錄。

方式二:會話裏加。 已經在對話中了,才發現還要讀另一個目錄,直接輸入:

text
/add-dir ../api

方式三:寫進設定,長期生效。 官方 CLI 參考說,想讓這些目錄跨會話保留,設定 permissions.additionalDirectories。示例(寫在 .claude/settings.json 裏,目錄名按你的實際情況改):

json
{
  "permissions": {
    "additionalDirectories": ["../api", "../shared"]
  }
}

注意官方的一個安全細節:項目裏 .claude/settings.json 的 additionalDirectories 是「授予能力」的配置,只有你接受了該文件夾的工作區信任對話框之後才會生效。所以剛克隆下來的陌生倉庫裏寫的目錄,不會在你沒確認的情況下被使用。

二、加進來的目錄,哪些配置生效

這是最容易踩的坑。官方的原話意思是:附加目錄讓 Claude 能讀寫文件,但不會讓它成為完整的配置根目錄。表格整理如下(來自官方 Permissions 頁面):

配置通過 --add-dir / /add-dir 加進來的目錄
.claude/skills/ 裏的 Skill加載,並支持實時刷新
.claude/commands/ 裏的命令文件加載,但不支持實時刷新;同名時用你項目裏的
.claude/agents/ 裏的子智能體加載,不支持實時刷新
.claude/settings.json 等設定只讀取 enabledPlugins 和 extraKnownMarketplaces 這兩個鍵
CLAUDE.md、.claude/rules/、CLAUDE.local.md預設不讀;設定環境變量 CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 才讀

兩個要點:

  • Skill 能帶過來。 官方還給了命名規則:當附加目錄裏的 Skill 與已有的重名時,命令前面會加上該目錄的文件夾名,比如 --add-dir ../cli 的 verify 技能變成 /cli:verify(官方標註需要 v2.1.309 或更高)。
  • 只寫在 permissions.additionalDirectories 裏的目錄,只給文件訪問,上面表格裏的例外都不適用。 官方特別說明,例外只針對用 --add-dir 標誌或 /add-dir 命令加的目錄。

所以如果你想讓後端目錄裏的 CLAUDE.md 也生效,有兩種做法:一是啟動前設定上面那個環境變量;二是把真正需要共享的規矩放進你當前項目的 CLAUDE.md。CLAUDE.md 本身怎麼寫,見 /guides/claude-md-agents-md。

三、/add-dir 和 /cd 到底差在哪

官方對 /cd 的描述:把會話移到另一個主工作目錄,保留對話,加載新目錄的 CLAUDE.md;如果你沒在那裏工作過,會提示你信任該工作區。移動之後,新目錄的這些東西立刻生效:

  • 項目設定,包括權限規則和 Hooks;
  • .mcp.json 裏的 MCP 伺服器(要經過同樣的審批);
  • 它的設定裏啟用的插件、Skill 和子智能體;
  • 它的 env 值。

同時,舊目錄的項目級和本地級 MCP 伺服器會斷開。你用 --add-dir 或 /add-dir 加的目錄會保留。

一句話選擇:還在同一個任務裏,只是需要讀另一個目錄 → /add-dir;這個任務已經轉到另一個項目了 → /cd。 如果只是想一次改兩個倉庫,又要各自隔離,可以看 /guides/claude-code-worktree。

四、實戰提示詞

跨前後端改一個接口:

text
我在 web 目錄啟動,已經加了 ../api。請先讀 api 裏 /orders 接口的定義和 web 裏調用它的代碼,列出兩邊不一致的字段;
先不要改,給我一份改動清單(哪個文件、改什麼),我確認後再改。

讓它只讀不改附加目錄:

text
../shared 裏的類型定義只讀,不要修改它。需要新字段的話,把建議寫在回覆裏,我自己去改。

官方還提供了更硬的辦法:把 permissions.blockWritesOutsideWorkingDirectories 設為 true,讓 Write、Edit、NotebookEdit 工具拒絕向工作目錄之外寫入(官方標註需要 v2.1.314 或更高)。注意官方明確說它不限制 shell 命令、MCP 工具和 Hook 運行的程序,限制命令寫入要用沙箱,見 /guides/claude-code-sandbox-security。

加了目錄卻沒按預期工作時先查什麼

圖:本站根據官方文檔整理的示意圖

五、常見問題

Q:能加網絡共享路徑嗎?

官方說大部分網絡路徑(例如 \\server\share)加不了,因為查找它可能聯絡它指向的主機。Windows 上的辦法是先把共享映射成盤符,再在啟動時傳盤符,比如映射到 Z: 就運行 claude --add-dir Z:\(PowerShell 裏)。其他 Windows 常見問題見 /guides/claude-code-windows-pitfalls-paths-git-bash-powershell。

Q:以前的會話還找得到嗎?

官方 CLI 參考說,--resume 的會話選擇器和名稱搜尋會包含添加過該目錄的會話。會話怎麼續接見 /guides/claude-code-resume-history。

Q:加了很多目錄,額度會更快用完嗎?

官方沒有對這一點給出數字。道理上,讀進來的文件越多,上下文佔用越多,所以提示詞裏最好寫明具體讀哪個目錄、哪幾個文件,而不是讓它全盤掃描。

Q:能用 --bare 模式嗎?

官方說 --bare 會跳過 Hook、Skill、插件、MCP、CLAUDE.md 等自動發現,但用 --add-dir 傳入的目錄裏的 Skill 仍會加載。

訂閱和額度

跨目錄讀寫會讓上下文變大,長期這樣用的話要留意額度。訂閱選擇見 /chongzhi/claude-code,價格和額度以官方頁面當前顯示為準。

相關教學

參考資料

  • Claude Code 文檔:Configure permissions — https://code.claude.com/docs/en/permissions
  • Claude Code 文檔:CLI reference — https://code.claude.com/docs/en/cli-reference

Nathaniel 的更多內容

  1. 01

    Claude Personal Finance 是什麼:連銀行帳戶問花銷、怎麼開、只讀權限、誰能用、怎麼解除

    Claude 的 Personal Finance(beta)通過 Plaid 只讀連接你的銀行、信用卡、貸款和投資帳戶,在一頁裏看餘額和花銷並用自然語言提問。本文按官方幫助頁講誰能用(僅美國、Pro/Max/Ultra)、連接與解除步驟、Claude 能看什麼,以及它做不到的事。

    Claude0
  2. 02

    Claude Code 離開一小時回來對話被「壓縮」了:Idle compaction 是什麼、條件、怎麼關

    Claude Code 的 idle compaction 會在你離開約一小時後,把 200K token 以上的長對話先壓縮成摘要,下一條消息就不用重新處理整段歷史。本文按官方文檔講觸發條件、看到什麼提示、用 /config 或 idleCompaction 關閉、調閾值,以及恢復舊對話的用量警告。

    Claude0
  3. 03

    ChatGPT Computer History 是什麼:Mac 桌面端的活動記憶怎麼開、怎麼暫停和清除、誰能用

    Computer History 是 ChatGPT macOS 桌面應用裏預設關閉的可選功能,把你在應用和網站裏的活動整理成記憶和時間線,供 ChatGPT 與 Codex 引用。本文按官方文檔講怎麼開、記錄什麼不記錄什麼、怎麼暫停與清除、數據存哪、誰能用,以及提示注入風險。

    ChatGPTCodex0
  4. 04

    Codex 輸入框出現灰色建議:Composer predictions 是什麼、Tab 接受、怎麼關、誰能用

    Codex 桌面 App 的 Composer predictions(beta)會在 Codex 回完後,根據當前對話在輸入框裏給出下一條消息的建議,按 Tab 接受、不會自動發送。本文按官方幫助頁講誰能用、哪些線程支持、怎麼關、算不算額度,以及沒出現時怎麼查。

    ChatGPTCodex0
  5. 05

    ChatGPT 私隱中心(Privacy Center)在哪裏:私隱設定入口、三大分類和哪些套餐有

    ChatGPT 的 Privacy Center 把記憶、廣告、位置、臨時對話、鎖定對話、兩步驗證、模型改進、數據導出和刪號等入口集中到一頁。本文按官方幫助頁講怎麼打開、三大分類各有什麼、哪些套餐有,以及它不會替你改任何設定。

    ChatGPT0
  6. 06

    Claude Code 處理大倉庫:怎麼讓它只看需要的目錄(子目錄 CLAUDE.md、claudeMdExcludes、deny 規則)

    倉庫太大,Claude Code 總在讀無關文件、讀進別的包的規則?本文按官方大倉庫指南講:從哪個目錄啟動、子目錄 CLAUDE.md、claudeMdExcludes、Read 的 deny 規則、worktree.sparsePaths、additionalDirectories,以及一份合併後的配置示例。

    Claude0

同產品的其他教學

  1. 01

    Claude Code 在 CI 裏跑:從本機 claude -p 到 GitHub Actions 的完整例子(自動審 PR、控成本)

    一條線走完 Claude Code 的 CI 用法:先在本機用 claude --bare -p 配 --json-schema 跑通,再寫進 GitHub Actions 用 claude-code-action@v1 自動審 PR,最後加上 --max-turns、超時、並發限制來控成本,並附上常見故障的排查順序。

    Claude0
  2. 02

    Claude Code 自定義 subagent 實例:測試員、調試員、只讀調研員、只讀數據庫員怎麼寫

    四個可直接改的 subagent 實例:跑測試的 test-runner、找根因的 debugger、只讀調研員、用 PreToolUse hook 限成只讀 SQL 的 db-reader;講 tools、disallowedTools、model、maxTurns 怎麼配,怎麼點名調用。

    Claude0
  3. 03

    Claude Code 的 CLAUDE.md 模板:前端、後端、數據分析各一份,附拆分與自檢方法

    直接拿去改的三份 CLAUDE.md 模板(前端、後端、數據分析),每份都控制在官方建議的 200 行以內;再講怎麼用 .claude/rules 的 paths 拆出專屬規則、用 @ 導入長文檔,以及用 /context all 和 /doctor prompt-audit 檢查是否生效。

    Claude0
  4. 04

    Claude Code 自己寫一個插件並發布到 marketplace:plugin.json、marketplace.json、validate 到團隊安裝的完整流程

    想把自己寫的 Skill、Hook 打包給團隊用?按 Claude Code 官方 Plugins 文檔,從目錄結構、plugin.json、claude plugin validate,到寫 marketplace.json、推到 Git、讓同事一條命令安裝,再到版本更新,走完一遍完整流程。

    Claude0
  5. 05

    Claude Code 寫一個會自動觸發的 Skill:從需求到觸發,用 description、when_to_use 和 paths 控制它什麼時候出場

    寫好的 Skill 總是不觸發,或者什麼都觸發?本文按 Claude Code 官方「Extend Claude with skills」走一遍完整實例:把「改數據庫遷移前先檢查」寫成一個會自動出場的 Skill,包含 description、when_to_use、paths、附帶腳本、觸發測試和評估。

    Claude0
  6. 06

    Claude Code 配 Sentry MCP 排查線上報錯:添加命令、瀏覽器授權、貼 issue 連結修 bug 和插件子智能體

    線上報錯只能手動複製堆棧給 Claude Code?Sentry 官方提供 MCP 服務,可以讓它直接讀 issue、堆棧和 trace。本文按 Claude Code 官方 MCP 文檔和 Sentry MCP 官方說明,講添加命令、/mcp 授權、典型排查流程、插件方式和自託管注意事項。

    Claude0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~