Using Google Drive from the Linux Command Line

GDrive

Gdrive is a command line tool which manages, uploads, downloads, deletes and shares files on Google Drive. You can download the tool from Github at https://github.com/prasmussen/gdrive.

Unfortunately it does not support file synchronisation.

Installation

Download the binary package from the github website and install

sudo mv drive /usr/local/bin

Alternatively you can install from source code. Next, simply run drive and it will provide you a URL which authenticates you using OAuth.

Usage

drive [global options] <verb> [verb options]

Options

Global options:
        -a, --advanced Advanced Mode -- lets you specify your own oauth client id and secret on setup
        -c, --config   Set application path where config and token is stored. Defaults to ~/.gdrive
        -v, --version  Print version
        -h, --help     Show this help

Verbs:
    delete:
        -i, --id       File Id (*)
    download:
        -i, --id       File Id (*)
        -s, --stdout   Write file content to stdout
            --pop      Download latest file, and remove it from google drive
    folder:
        -t, --title    Folder to create (*)
        -p, --parent   Parent Id of the folder
            --share    Share created folder
    info:
        -i, --id       File Id (*)
    list:
        -m, --max      Max results
        -t, --title    Title filter
        -q, --query    Query (see https://developers.google.com/drive/search-parameters)
        -s, --shared   Show shared status (Note: this will generate 1 http req per file)
        -n, --noheader Do not show the header
    share:
        -i, --id       File Id (*)
    unshare:
        -i, --id       File Id (*)
    upload:
        -f, --file     File or directory to upload (*)
        -s, --stdin    Use stdin as file content (*)
        -t, --title    Title to give uploaded file. Defaults to filename
        -p, --parent   Parent Id of the file
            --share    Share uploaded file
    url:
        -i, --id       File Id (*)
        -p, --preview  Generate preview url (default)
        -d, --download Generate download url

Examples

List files

$ drive list
Id                             Title                     Size     Created
0B3X9GlR6EmbnenBYSFI4MzN0d2M   drive-freebsd-amd64       5 MB     2013-01-01 21:57:01
0B3X9GlR6EmbnOVRQN0t6RkxVQk0   drive-windows-amd64.exe   5 MB     2013-01-01 21:56:41
0B3X9GlR6Embnc1BtVVU1ZHp2UjQ   drive-linux-arm           4 MB     2013-01-01 21:57:23
0B3X9GlR6EmbnU0ZnbGV4dlk1T00   drive-linux-amd64         5 MB     2013-01-01 21:55:06
0B3X9GlR6EmbncTk1TXlMdjd1ODQ   drive-darwin-amd64        5 MB     2013-01-01 21:53:34

Upload file or directory

$ drive upload --file drive-linux-amd64
Id: 0B3X9GlR6EmbnU0ZnbGV4dlk1T00
Title: drive-linux-amd64
Size: 5 MB
Created: 2013-01-01 21:55:06
Modified: 2013-01-01 21:55:06
Owner: Petter Rasmussen
Md5sum: 334ad48f6e64646071f302275ce19a94
Shared: False
Uploaded 'drive-linux-amd64' at 510 KB/s, total 5 MB

Download file

$ drive download --id 0B3X9GlR6EmbnenBYSFI4MzN0d2M
Downloaded 'drive-freebsd-amd64' at 2 MB/s, total 5 MB

Share a file

$ drive share --id 0B3X9GlR6EmbnOVRQN0t6RkxVQk0
File 'drive-windows-amd64.exe' is now readable by everyone @ https://drive.google.com/uc?id=0B3X9GlR6EmbnOVRQN0t6RkxVQk0

Pipe content directly to your drive

$ echo "Hello World" | drive upload --stdin --title hello.txt
Id: 0B3X9GlR6EmbnVHlHZWZCZVJ4eGs
Title: hello.txt
Size: 12 B
Created: 2013-01-01 22:05:44
Modified: 2013-01-01 22:05:43
Owner: Petter Rasmussen
Md5sum: e59ff97941044f85df5297e1c302d260
Shared: False
Uploaded 'hello.txt' at 6 B/s, total 12 B

Print file to stdout

$ drive download --stdout --id 0B3X9GlR6EmbnVHlHZWZCZVJ4eGs
Hello World

Get file info

$ drive info --id 0B3X9GlR6EmbnVHlHZWZCZVJ4eGs
Id: 0B3X9GlR6EmbnVHlHZWZCZVJ4eGs
Title: hello.txt
Size: 12 B
Created: 2013-01-01 22:05:44
Modified: 2013-01-01 22:05:43
Owner: Petter Rasmussen
Md5sum: e59ff97941044f85df5297e1c302d260
Shared: False

Get a url to the file

$ drive url --id 0B3X9GlR6EmbnVHlHZWZCZVJ4eGs
https://drive.google.com/uc?id=0B3X9GlR6EmbnVHlHZWZCZVJ4eGs

4 thoughts on “Using Google Drive from the Linux Command Line”

  1. I have implemented backup of files for blog http://www.visitorpanel.com but i am facing issue in file deletion. If file is in root folder of gdrvie we can directly delete but if file is in a folder how to delete that file ? i could not find any documentation of that. I am getting both directory id and file id from directory list.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.