This article is not yet available in English. You are reading the Traditional Chinese original. The English edition will appear here once it is translated.
Browse articles that do have an English edition檔案路徑:為什麼你的檔案「找不到」
No such file or directory。
你看了一眼檔案,它就在那裡,在螢幕上看得見。於是你以為是程式壞了、或者自己裝錯了東西。
九成情況下,問題是你給的路徑與程式尋找的位置不是同一個地方。 路徑是初學者最早撞到、也最少被解釋清楚的概念之一。
一、每一個路徑都是從某個地方開始算的
檔案系統是一棵樹。最頂端叫根目錄:
- macOS 與 Linux 寫作
/ - Windows 寫作
C:\(或D:\等,取決於磁碟)
從根目錄一路寫下來的完整位置,叫絕對路徑:
/Users/you/projects/notes/todo.txt (macOS / Linux)
C:\Users\you\projects\notes\todo.txt (Windows)
絕對路徑的好處是不管你在哪裡,它都指向同一個檔案。
二、相對路徑:從「你現在在哪」開始算
相對路徑不從根目錄開始,而是從你目前所在的資料夾開始。這個資料夾叫工作目錄。
pwd # 印出你現在在哪(print working directory)
假設 pwd 告訴你你在 /Users/you/projects,那麼:
| 你寫的 | 實際指向 |
|---|---|
notes/todo.txt | /Users/you/projects/notes/todo.txt |
./notes/todo.txt | 同上,./ 就是「這裡」 |
../other/x.txt | /Users/you/other/x.txt,../ 是「上一層」 |
~/notes/todo.txt | /Users/you/notes/todo.txt,~ 是你的家目錄 |
這就是「找不到檔案」最常見的原因:你給的是相對路徑,但你不在你以為的那個目錄裡。
確認方法:先 pwd,再想你要的檔案相對於這個位置在哪。
~ 是家目錄的簡寫(/Users/you 或 /home/you)。它很有用,但注意 Windows 的命令提示字元不認 ~,PowerShell 則認。
三、/ 與 \:兩種作業系統的分隔符不同
- macOS / Linux 用斜線
/ - Windows 用反斜線
\
把 Windows 路徑貼進 macOS 終端機、或反過來,都會失敗。
一個實用的好處:很多現代的工具與程式語言兩種都接受,或者你在 Windows 上用 PowerShell 時 / 也常常能用。所以如果不確定,先試 /。
Windows 還有一個歷史遺留問題:某些老程式用 / 表示選項(例如 dir /w),所以在那些場合反斜線是必須的。
四、名稱裡有空格,就需要引號
cat My Project/notes.txt # 錯:會被當成三個參數
cat "My Project/notes.txt" # 對
不加引號時,終端機把空格當成「這裡是下一個參數」的分隔符,所以它以為你要它對 My、Project/notes.txt 做某件事。
引號用單引號或雙引號都可以,差别在於雙引號裡面 $ 開頭的東西會被展開成變數,單引號則原樣保留。路徑通常用雙引號就夠。
另一個選擇是跳脫:cat My\ Project/notes.txt。反斜線的意思是「下一個字元按字面處理」。但引號比較好讀,也比較不容易漏。
最省事的做法:給檔案與資料夾命名時不要用空格。用 - 或 _ 代替。這不是美學偏好,是可以少踩一類坑。
五、怎麼找出一個檔案到底在哪
不要猜。有三種方法:
方法一:從圖形介面拿。 在 macOS 的 Finder 裡對檔案按右鍵、按住 Option,會出現「將 XXX 拷貝為路徑名稱」。Windows 的檔案總管裡,按住 Shift 對檔案按右鍵會出現「複製檔案位址」。
方法二:用指令搜。
find ~ -name "todo.txt" 2>/dev/null # macOS / Linux,從家目錄開始找
2>/dev/null 是把「權限不足」那類噪音丟掉,否則會印出幾百行你不想看的錯誤。
Windows PowerShell:
Get-ChildItem -Path $HOME -Recurse -Filter "todo.txt" -ErrorAction SilentlyContinue
方法三:拖進去。 大多數終端機支援把檔案從 Finder/檔案總管直接拖進終端機視窗,它會自動填入正確的完整路徑(含必要的引號或跳脫)。這是最不容易錯的方法。
六、隱藏檔案:以 . 開頭
在 macOS 與 Linux 上,名稱以 . 開頭的檔案是隱藏的:.zshrc、.bashrc、.gitignore、.env。
ls 預設不顯示它們。要看:
ls -a
這對 AI 工具很重要,因為很多工具的設定檔就是這種隱藏檔案(例如 ~/.someconfig/config.yaml)。你用 Finder 看不到它,不代表它不存在。
Finder 裡按 Cmd+Shift+. 可以切換顯示隱藏檔案。Windows 上對應的是檔案總管的「顯示」→「隱藏的項目」。
七、五個最常見的路徑錯誤
| 症狀 | 原因 | 確認方法 |
|---|---|---|
No such file or directory 但檔案看得見 | 你不在你以為的目錄 | pwd |
| 同上,且路徑含空格 | 沒加引號 | 加 "..." |
| 同上,在 Windows | 用了 / 或 ~ | 改 \,~ 換成完整路徑 |
Permission denied | 路徑對了但沒權限 | 見 裝完沒反應:五個檢查,照順序做完再重裝 檢查二 |
| 設定檔找不到 | 它是隱藏檔案 | ls -a |
為什麼這件事對 AI 工具特別重要
因為你與 Agent 之間最常見的溝通失敗就是路徑。
你說「幫我看一下那個報告」,它不知道「那個」是哪一個。它只能看到工作目錄裡的東西,而你心裡想的那個檔案可能在桌面、在下載、在另一個專案裡。
給 Agent 完整路徑,而不是描述。 這兩句話的差别很大:
弱:幫我總結 report.pdf
強:幫我總結 /Users/you/Documents/2026/report.pdf
第二句它會直接去做。第一句它要麼猜、要麼列目錄找、要麼問你 —— 三種都浪費時間,而猜錯的時候你會以為它能力不行。
如果你不確定路徑,就用上面第五節的方法三:把檔案拖進終端機視窗,路徑會自己填進去。
下一步
- 終端機與 CLI 保命指南 ——
pwd、ls、cd這些指令的完整說明 - 把指令從網頁貼進終端機 —— 路徑貼進去卻報錯時,先看這裡
- 裝完沒反應 ——
Permission denied與工作目錄的問題在那裡有排查順序 - AI Agent 到底看得到什麼 —— 工作目錄決定了它的視野範圍
- PATH 與路徑 / Working Directory(工作目錄) / CLI(命令列介面)
More in Learn
- Complete LangChain Tutorial 2026: Building Enterprise-Grade LLM Applications from Scratch
- MemoryHub v2.0 System Architecture In-Depth Analysis: From Capture Daemon to MCP Real-Time Memory Capture
- May 2026 LLM API Pricing Landscape: Complete Comparison of DeepSeek, Qwen, GLM, Kimi, MiniMax, and Doubao
- Cross-Channel Memory Hub: A Full Record of the Memory System Architecture Design for OpenClaw Agent