讓雲朵走進硬碟深處:用mklink優雅同步OneDrive資料
「我只是想備份個檔案,結果差點把C槽炸掉,還好我後來學會了 mklink。」
這篇文章記錄了我從Office 365的OneDrive備份開始,意外把C槽塞爆的過程,最後靠mklink符號連結優雅解決的經驗。從同步失敗、檔案覆蓋,到多裝置協作的混亂,我一步步摸索出一條不打擾原始資料夾秩序的備份之路,適合所有想要雲端同步但又不想重灌或搬資料夾的你。內容包含:
- 為什麼我選OneDrive備份:
- Office 365附的1TB空間剛好派上用場
- 想區分私人與共享空間,Dropbox和Google Drive已經各有任務
- 災難現場的C槽爆炸事件:
- 備份500GB資料進OneDrive,結果系統槽直接塞滿
- 嘗試手動搬移、刪減檔案,還是麻煩又容易出錯
- 多裝置同步的混亂:
- 筆電桌機交錯使用,忘記同步就會版本覆蓋
- 雖然OneDrive有版本歷程救回來,但心臟不夠大不建議常用
- Copilot給的解法與我最後的選擇:
- 試過問Copilot、查網路,發現mklink是最穩定的方式
- 不用重灌、不用搬資料夾,還能保留原始結構
- mklink實作教學:
- 用 mklink /D 建立符號連結,把E槽的資料「假裝」放進 OneDrive
- OneDrive會同步這個連結資料夾,但實際檔案還在原地
- 常見錯誤與避雷提醒:
- /J ≠ /D,請用對參數
- 同步延遲可手動觸發
- 多裝置請只在一台建立連結,避免衝突副本
目錄
從Office 365到C槽爆炸的慘劇
這個問題是怎麼發生的?
Copilot提供的好解法
符號連結:檔案系統的隱形橋樑
檔案符號連結在OneDrive的設定方法
常見的錯誤
結語
參考文獻
FAQ
從Office 365到C槽爆炸的慘劇
最近剛好把手上一個比較大的創業-密室逃脫,從原本的建置的狀況推進到了營運的情形,整個創業手上的待辦事項至少處理掉了很大一個部分。
這邊請容我置入性行銷一下,這是我們目前開幕了一陣子的密室逃脫-雅婷。
想要了解更多的朋友歡迎以下這邊請↓
而也因為推進到了營運以後,建置時期的眾多檔案基本上來說也都分類好、交接好不太會作大幅度的更動了,因此就想著差不多要開始作備份。
以往我自己的備份習慣都是,一個禮拜作一次實體的備份,把原本在筆電裡面的資料移轉到桌機裡面整合以後,再備份到外接硬碟中。
但有時候總想著,如果在遇到特殊情況而沒有辦法直接拿到硬碟的時候,資料還是可能會有拿不到的風險,因此就持續在思考要找一個適合且方便的雲端備份空間。
為什麼選擇使用OneDrive?
其實最早的時候我使用的雲端空間是Dropbox,但是因為後來比較常用Dropbox的空間來跟創業夥伴作資料共享,或是會把個人部落格要對外分享的資料丟在上面,因此想要作一個公開和私人空間的區分,於是就沒有繼續使用Dropbox。
Google的雲端空間本身也被我拿去使用作為創業共享檔案的備份空間了,所以比較為人所熟知的空間基本上我都用得差不多了。
而且再來就是,因為涉及到的創業有點多的緣故,導致我可能會想要備份的資料大概有500GB左右的大小,就是一個並不是真的很大,但還算是有點份量的檔案內容。
這個時候我突然想起來我訂閱Office 365的時候,剛好他的方案底下有1TB的OneDrive雲端空間可以使用,這不就是派上場的時候了嗎?
雖然說OneDrive提供的雲端空間並不是真的大到很從容,但是對於備份重要的工作檔案來說已經很足夠了。
因此想說,那就把OneDrive作為工作的雲端備份空間好了,也不用另外再付費,也蠻熟悉的。
聽起來很順利,後來怎麼了?
我是一個一旦已經決定了以後,就會馬上行動的人,於是我毫不猶豫地把整個工作的資料夾,直接從D槽複製到了我的OneDrive的本地資料夾裡面。
正當我想說放著要去吃午餐的時候,電腦馬上跳出了:「你的C槽空間不足」的訊息。
我研究了一下這是怎麼回事,發現這是因為我的OneDrive本地資料夾的路徑是放在系統槽裡面的User資料夾中,換而言之他要吃的就是我的C槽空間。
而如果想要在OneDrive備份的話,就必須要同時有另一份檔案是放在C槽的OneDrive資料夾中,他才會上傳到雲端的空間。
「欸不是,我的檔案整整有500多GB喔!我的系統槽哪有這麼大我的老天。」
那或許沒有這麼多的資料需要備份嗎?
於是看了一下我的工作資料夾,發現有很大一部分其實都是podcast跟線上課程的影片檔,想說那就稍微簡單一點,只備份重要的檔案就可以了吧?
而且有一部分密室建置時候的資料也都已經放到公用的雲端上面了,所以應該可以不太需要也放在我的私人雲端上面,因此稍微刪一刪以後大概會只剩下50GB左右,C槽佔據的空間也不多。
頂多就是在原本的路徑處理完檔案以後,固定養成習慣把資料夾拖曳到雲端備份。
「縱然麻煩,但至少可以暫時這樣吧?」我當時是這麼想的。
後來結果怎麼樣了?
因為工作性質的緣故,很常需要在外面跑來跑去,有時候會在咖啡廳工作、有時候則是會在補習班工作,所以不盡然都是使用桌機,大概會有50%左右的時間是使用筆電。
因此我後來都習慣,直接用筆電開雲端的檔案來繼續處理工作,回家以後再把資料從雲端拉到原本的資料夾裡面版本更新。
聽起來很容易出事情,對不對?
結果某一次我匆忙地出門時,忘記把在家裡作到一半的工作連同資料夾上傳到雲端帶出去。
在外面的時候發現這個情形時,就想說先用舊版繼續往下做,回家以後再整合就好。
算盤打得很精細也覺得萬無一失,沒想到回家以後不小心用了只有做了一部分的新版,覆蓋掉了原本做了前大半部的大部分檔案。
整整一天的工時直接化為烏有。
不過還好,最後透過了OneDrive的版本歷程救了回來,我們會在其他篇再來提一下這個部分要怎麼處理。
雖然很驚險的救回來了,但是我左思右想覺得這樣一直備份不是辦法,有沒有什麼好的辦法可以一勞永逸,編輯完以後自動備份到雲端,又不會吃到C槽空間的方法?
這個問題是怎麼發生的?
屏除掉我本來打算要用很偷懶的方式解決在筆電跟桌機之間傳檔案這件事情,其實問題就是在於OneDrive本身的設定上。
一般來說,當我們第一次在安裝OneDrive的時候,他會預設電腦的使用者都會把檔案放置在User資料夾裡面,於是就會在C槽的User資料夾中建立一個OneDrive的資料夾。
這個對於習慣性會把所有的資料檔都塞在C槽以及使用者資料夾的使用者來說,的確是一個很合理的設計沒有錯。
但由於電腦運行速度的原因,一般來說比較會在C槽放的應該是系統程式為主,資料的程式會放在其他容量比較大的槽。
這也就造成了,如果原本的工作資料是放在其他磁碟,像是D槽、E槽的使用者,如果想要把檔案同步到雲端的時候,就必須把整個資料夾搬到OneDrive的預設路徑裡。
而許多人為了保留原始資料夾的結構,選擇「複製」而不是「移動」,結果同一份資料在硬碟裡出現兩份,一份在原始位置,一份在OneDrive路徑裡。
當資料量如果大到幾百GB的時候,就會出現同樣的資料佔據了兩個不同槽的龐大空間的問題。
更糟的是,Windows系統本身需要C槽空間來運作,當空間被塞滿,電腦不僅變得緩慢,甚至可能出現錯誤或無法正常更新。
Copilot提供的好解法
我利用了我在【AI x Learning】那個系列文裡面提到的方法,最一開始的時候我花了很大的篇幅,先跟Copilot描述了我遇到的問題作為背景資訊。
對於如何與AI良好溝通的技巧有興趣的讀者,可以參照我的這個系列的文章↓
【AI x learning】 從不動腦到思考迴路:為什麼使用 AI 前你得先學會提問
雖然我最一開始也有查過網路上可以透過什麼樣的方法解決,但我得到的答案多數都是可能重灌,或是利用先取消連結帳戶,然後把OneDrive資料夾搬走的方法。
老實說我就是想要一個很粗暴的解法,就是希望在不要重灌Office也不要搬資料夾的情況下,能夠指定讓OneDrive去自動同步特定資料夾的資料。
這樣的做法是我認為最能操作的,之後想備份什麼資料夾都可以的做法,但想當然爾,Copilot表示這件事情沒有辦法。
但是他提供了我原本在網路上就查到的方法,也就是重新連結,或是仰賴第三方軟體,但是這個部分我沒有特別嘗試,因為無法完全解決未來想要備份什麼資料夾都可以的問題。
後來我決定改一個問法,就是能不能夠讓特定的資料夾同步,但是不需要搬動原本的資料的位置。
這個時候Copilot就提供一種特殊的解法,就是我們在這篇文章裡面提到的「符號連結(Symbolic link)」。
符號連結:檔案系統的隱形橋樑
如果要解決OneDrive的路徑會綁死在C槽,又想要維持原本想要備份的資料夾結構而不想要重灌的話,我最後找到的解法就是使用Windows內建的指令 mklink /D。
透過這個指令,可以建立一個符號連結(Symbolic Link)」,它看起來就像是一個普通的資料夾的icon,但實際上只是指向另一個位置的入口。
而對於使用者和應用程式來說,它就像真實存在的資料夾一樣,可以正常讀取與寫入;但在檔案系統的底層,它只是一個指向的路徑。
透過符號連結這種設計的美妙之處在於,它讓我們可以在OneDrive的同步資料夾裡放置一個「虛擬資料夾」,而這個資料夾其實是連到E槽或其他磁碟的工作資料。
換句話說,OneDrive在備份資料的時候,會以為這個資料夾就在它的同步路徑裡,並且照常把內容備份到雲端,但實際上檔案仍然安穩地留在原本的位置。
如此一來,我們就不需要搬動或複製資料,當然更不需要重灌Office,更不會讓C槽空間白白浪費。
根據Microsoft官方文件[1],mklink這個指令本身是Windows的NTFS檔案系統提供的功能,用來建立檔案或資料夾的符號連結。
當我們加上「/D」這樣的參數時,代表建立的是「資料夾型」的符號連結,而不是單一檔案的連結。這種連結可以跨磁碟使用,對OneDrive來說也能正常運作。
從概念上來看,符號連結就像是在檔案系統裡開了一扇隱形的門。你可以在OneDrive裡打開這扇門,走進去的卻是另一個磁碟深處的某個房間。
這種「隱形橋梁」的設計,讓我們能在不打擾原始秩序的前提下,重新定義資料的流動方式。
檔案符號連結在OneDrive的設定方法
在了解到mklink這樣的原理以及概念以後,接下來的挑戰就是要如何將它應用到OneDrive的資料備份上面了。
首先,我先在OneDrive的本地資料夾中,建立了一個Backup的資料夾,這個是我預留將來要拿來備份電腦裡面各種不同資料夾,用來區分連動筆電、桌機等其他資料夾的內容。
接下來的整個流程,我們都會在命令提示字元裡面操作。
我們可以在Windows左下角的搜尋(多半是一個放大鏡的符號),點開以後搜尋「CMD」或是「命令提示字元」就可以找到它。
這邊需要特別注意的事情是,因為我們需要比較高的執行權限,因此在開啟命令提示字元的時候必須要點右鍵,然後選擇「以系統管理員的身分執行」。
打開以後就是黑壓壓的一片的畫面。
我們假設今天我們想要在OneDrive裡面的Backup資料夾中,把我們原本在E槽裡面的「工作(已完成的在硬碟)」這個名稱的資料夾建立符號連結在Backup資料夾中的時候,我們需要輸入以下的文字:
這行指令的意思是,在OneDrive裡面的Backup路徑建立一個名為「工作(已完成的在硬碟)」的符號連結,而它實際上指向E槽的「工作(已完成的在硬碟)」資料夾。
你可以將第一個引號("")裡面的內容更換成你在OneDrive裡面想要創建的符號連結的名稱路徑,並且在第二個引號("")裡面的內容更換成你想要同步備份的資料夾。
請務必記得不要先建立那個想要符號連結的資料夾,系統會自動幫你建立。
輸入好了以後按下Enter,當指令執行成功時,系統會顯示類似以下的訊息,就是代表建立好符號連結了。
C:\Windows\system32>mklink /D "C:\Users\somnus0131\OneDrive\backup\工作(已完成的在硬碟)" "E:\工作(已完成的在硬碟)" 已建立 C:\Users\somnus0131\OneDrive\backup\工作(已完成的在硬碟) 的符號連結 <<===>> E:\工作(已完成的在硬碟)
從此之後,OneDrive會把這個符號連結當作真實的資料夾來處理,並且同步裡面的所有檔案到雲端。
一旦你在原本的資料夾做資料的更動時,OneDrive會主動確認是否有資料的變更,同步更新到雲端上。
它的資料夾的符號會長得很像是「捷徑」的符號,但是對於使用者來說這就是一般的資料夾,檔案都可以正常連結正常開啟。
而當我開始用 mklink /D 來處理 OneDrive 的同步問題時,最大的感受就是「輕鬆」。
我不需要再把龐大的資料夾搬到C槽裡,也不必忍受重複備份造成的空間浪費。
而且當我使用桌機工作的時候,不管我做了什麼更動,OneDrive都會尋找變更,然後自動幫我同步到雲端上面。
而當我使用筆電做事情的時候,我只要點開OneDrive裡面的資料,它永遠都會是最新的版本,我直接編輯儲存以後,回到家OneDrive會直接幫我覆蓋桌機裡面的檔案,我可以永遠確保我的檔案都是最新的版本。
對於需要在筆電與桌機之間交錯工作的我來說,這種解法更是一種安心:我知道雲端裡的檔案始終與本機保持一致,不會再因為搬移或複製而產生混亂。
而我的C槽也不再因為同步而被塞滿,系統也能維持穩定運作,這種方式讓我同時保留了原始秩序與雲端備份的便利。
用到現在,我完全不用擔心檔案是不是最新的版本,有沒有覆蓋到不適當的版本,節省了非常多的時間。
常見的錯誤
雖然符號連結是一個優雅的解法,但在網路上有不少人嘗試過卻沒有這麼順利完成設定。這些經驗成了很好的提醒,讓我們知道哪些地方需要特別注意。
常見錯誤一:使用錯誤的參數/J
參數 /J 本身是目錄接合點(junction)的建立,如果使用 /J 的話,OneDrive會只同步連結本身,而沒有同步裡面的內容。
這是因為 /J 在技術上只能在同一個磁碟裡運作,對跨磁碟的情境支援度很差,也不被 OneDrive穩定支援。
所以請務必使用 /D 而不是 /J 來建立連結。
常見錯誤二:同步延遲或卡住
有些人建立符號連結後,發現OneDrive沒有即時偵測到資料的變更,導致檔案更新不上雲端,這個其實是OneDrive本身的設定,它不會時時刻刻都在掃描資料的變更。
這個時候我會建議可以直接在桌面右下角的OneDrive雲朵符號點右鍵,點開以後看到視窗右上角的齒輪先選擇「暫停同步處理」。
然後等它確定暫停同步處理以後,再重複一樣的動作改成點選「繼續同步處理」,OneDrive就會主動開始找變更的資料了。
常見錯誤三:多裝置建立相同連結導致衝突
有些人同時在桌機和筆電建立了相同的符號連結,但指向的資料夾卻不完全一致。結果 OneDrive無法判斷哪一份才是最新版本,最後產生了衝突副本。
我會建議,如果同時有攜帶型裝置還有桌機的話,在桌機建立符號連結,然後攜帶型的裝置都直接編輯雲端的檔案,讓雲端成為唯一的同步來源這樣會比較好。
結語
從最初因為訂閱Office 365而開始使用OneDrive,到500GB資料讓C槽爆炸的慘劇,再到多裝置交錯工作時發生的檔案覆蓋問題,過程中我逐漸意識到:雲端同步不只是技術問題,它其實牽涉到秩序、結構與使用習慣。
而我也發現,符號連結能夠提供一個非常方便且優雅的解法,它讓我能在不打擾原始資料夾秩序的前提下,將雲端與硬碟連結起來。
它讓我們在檔案系統裡開了一扇隱形的門,讓雲朵能走進硬碟深處,卻不驚動原本的秩序。
喜歡我的文章的朋友,歡迎在網頁最下方找到我的粉專或IG追蹤我,就不會錯過新文章的消息。那我們就其他文章再見囉!
參考文獻
[1] https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/mklink
FAQ
為什麼 OneDrive 備份會吃掉 C 槽空間?
因為 OneDrive 的本地同步資料夾預設在 C 槽的 User 資料夾中,會複製一份完整資料進去。
mklink 和一般捷徑有什麼不同?
mklink 是系統層級的符號連結,對 OneDrive 來說就像真實資料夾,會同步內容;捷徑不會。
mklink 要怎麼用?
用命令提示字元輸入 mklink /D "目標路徑" "來源資料夾",詳細步驟文中有教學。
為什麼不能用 /J?
/J 是目錄接合點,只適用於同一磁碟,跨磁碟會導致 OneDrive 不同步內容。
多裝置怎麼避免同步衝突?
只在桌機建立符號連結,筆電直接編輯雲端檔案,讓雲端成為唯一來源。





