Sync Local Disk to Dropbox with Symbolic Link

公司配的筆電是 Windows 系統,而自己平常使用的是 OSX,前一陣子重新整理筆電的時候,發覺兩邊有些檔案重複,而且有同步的問題,本想透過一顆外接硬碟解決這個問題,突然想到自己買了 1 TB 的 Dropbox 空間,只拿來備份手機的照片,應該好好利用一下。 不論 Windows 或者 OSX,使用者路徑都是 /Users/USERNAME,底下的系統預設子目錄不外乎 文件、影片、圖片、音樂... 因此,我在 Dropbox 上面依樣畫葫蘆,建立相同的路徑和子目錄,準備用來存放兩邊的檔案,對應如下。

Dropbox 目錄 Windows OSX
Dropbox/Users/USERNAME/Documents 我的文件 文件
Dropbox/Users/USERNAME/Movies 我的影片 影片
Dropbox/Users/USERNAME/Music 我的音樂 音樂
Dropbox/Users/USERNAME/Pictures 我的圖片 圖片
Dropbox/Users/USERNAME/Projects 工作目錄 工作目錄

接著在 Windows 和 OSX 安裝 Dropbox client ,使用這類 client 端同步軟體的問題是,如果雲端存了 500 GB 的檔案,又選擇同步所有檔案的話,代表硬碟也要有 500 GB 的空間,我的硬碟空間沒這麼多,因此要從 偏好設定 -> 選擇性同步,勾選幾個想要同步的目錄,也就是上面剛建立的這幾個目錄。

而這些 Dropbox 的目錄下,再建立子目錄儲存文件,舉例來說,Dropbox/Users/USERNAME/Documents 目錄底下建立 bills 目錄用來存放電子帳單、建立 ebooks 目錄用來存放電子書、建立 resume 目錄用來存放自己的履歷。

接下來在本地端建立 symbolic link 連結 Dropbox 的目錄,例如:在 OSX 的 /Users/USERNAME/Documents 目錄下建立 Dropbox/Users/USERNAME/Documents/ebooks 的 symbolic link,在 terminal 使用以下指令:

$ ln -sf /Users/USERNAME/Dropbox/Users/USERNAME/Documents/ebooks /Users/USERNAME/Documents`

完成以上指令後,用 Finder 打開 文件 目錄,就會看到 ebooks 的 symbolic link,實際上是指向 Dropbox 上面的 ebooks,也就是說在這個目錄裡增加、刪除檔案,等同於操作 Dropbox 上的 ebooks 目錄。

同樣的,在 Windows 的 我的文件 目錄下建立 Dropbox 的 ebooks symbolic link,的則是使用 mklink 指令,使用系統管理員身分開啟命令提示字元,輸入以下指令:

mklink /D C:\Users\USERNAME\Documents\ebooks C:\Users\USERNAME\Dropbox\Users\USERNAME\Documents\ebooks

因為是建立目錄的連結,要加上 /D ,輸入完成後,就會在 我的文件 目錄下看到 ebooks 的 symbolic link。

比較一下 ln 和 mklink 可以發現,ln 指令的第一個路徑參數是 symbolic link 要指向的位置(也就是 Dropbox 的路徑),第二個路徑參數是 symbolic link 的所在位置(也就是本機硬碟上的路徑)

而 mklink 指令剛好相反,第一個路徑參數是 symbolic link 的所在位置,而且要指定 symbolic link 的名稱,例如:C:\Users\USERNAME\Documents\ebooks 代表建立的 symbolic link 名稱是 ebooks,第二個參數是 symbolic link 要指向的位置。

Comments

Comments powered by Disqus