Agentic Research
首頁/學習/檔案路徑:為什麼你的檔案「找不到」

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

2026/09/308 分鐘Bryan Chan最後更新 2026/09/30
這篇屬於學習主題入門終端機檔案系統

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

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

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

下一步