在 Linux 中使用 Grive 指令工具同步 Google 雲端硬碟(Drive)上的檔案

這裡介紹如何在 Linux 中使用 Grive 指令工具,讓 Google 雲端硬碟跟本機硬碟中的檔案同步。

Google 雲端硬碟是 Google 所提供的線上雲端儲存服務,除了可以儲存各種檔案之外,也支援檔案的同步、分享與協同編輯等功能,而目前 Google 雲端硬碟已經支援 Windows、Mac OS X、Android 與 iOS 這些平台,但是 Linux 卻尚未有官方的正式支援,因此在 Linux 平台上若想要使用 Google 雲端硬碟只能使用網頁來存取,或是使用第三方所開發的軟體。

Grive 是一個開放原始碼的非官方 Google 雲端硬碟 Linux client,它是一個指令模式的工具,可讓 Linux 本機的資料夾與 Google 雲端硬碟同步,只要啟動這個 Grive  之後,它就會自動把本機的檔案變動同步到 Google 雲端硬碟上,反之亦然。

安裝 Grive

在 Ubuntu Linux 中,若要安裝 Grive,使用 apt 安裝,首先加入這個 PPA:

sudo add-apt-repository ppa:nilarimogard/webupd8

然後再安裝 grive 套件:

sudo apt-get update
sudo apt-get install grive

如果不想使用第三方的 PPA,要從原始碼編譯安裝也可以,首先安裝一些必要套件:

sudo apt-get install cmake build-essential libgcrypt11-dev libjson0-dev libcurl4-openssl-dev libexpat1-dev libboost-filesystem-dev libboost-program-options-dev binutils-dev

再從 Grive 的網站下載原始碼,或直接使用 wget 下載:

wget http://www.lbreda.com/grive/_media/packages/0.2.0/grive-0.2.0.tar.gz

解壓縮之後再編譯並安裝:

tar xvfvz grive-0.2.0.tar.gz
cd grive-0.2.0
cmake .
make
sudo make install

安裝完成之後,第一次執行前,要先建立一個本機的資料夾,然後再使用 grive 指令配合 -a 參數跟 Google 雲端硬碟設定同步:

mkdir ~/google_drive
cd ~/google_drive
grive -a

執行之後,會出現一個 URL 網址,這是為了取得 Google 應用程式的權限用的,以瀏覽器打開這個網址之後,登入 Google 的帳號,就可以看到這樣畫面:

grive-authentication

點擊「接受」後,就會出現一個授權碼:

grive-authentication-code

把這個授權碼複製下來,貼在剛剛 Grive 要求輸入授權碼(authentication code)的地方:

grive-authentication-code-paste

貼上授權碼之後,再按下 Enter 鍵,這時候 Grive 就會把所有 Google 雲端硬碟上的資料同步到這個資料夾中:

grive-sync

使用 Grive 進行同步

之後如果在本機的 ~/google_drive 目錄或是 Google 雲端硬碟有新增、修改或刪除的檔案時,你可以在這個目錄中執行 grive 指令,這樣 Grive 就會自動將本機與 Google 雲端硬碟檔案作比對,自動下載或上傳,讓兩邊的檔案同步,例如若在本機新增一個 new_file 檔案:

cd ~/google_drive
touch new_file

如果要進同步,就執行:

grive

輸出為
Reading local directories
Synchronizing folders
Reading remote server file list
Detecting changes from last sync
Synchronizing files
sync “./new_file” doesn’t exist in server, uploading
Finished!

這裡 Grive 發現 ./new_file 這個檔案沒有在 Google 雲端硬碟上,就會自動上傳。當然如果 Grive 發現 Google 雲端硬碟上有新檔案時,它也會幫你自動下載。

參考資料:Xmodulo

Linux

1 留言

  1. Chen

    請問可以指定要同步的Google drive中的資料夾嗎? 謝謝

Comments are Closed