Agentic Research

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

檔案路徑:為什麼你的檔案「找不到」

2026/09/308 min readBryan Chan閱讀中文原文
Topics入門終端機檔案系統

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

第二句它會直接去做。第一句它要麼猜、要麼列目錄找、要麼問你 —— 三種都浪費時間,而猜錯的時候你會以為它能力不行。

如果你不確定路徑,就用上面第五節的方法三:把檔案拖進終端機視窗,路徑會自己填進去。

下一步