/dbxcli

A command line client for Dropbox built using the Go SDK

Primary LanguageGoOtherNOASSERTION

dbxcli: A command line tool for Dropbox users and team admins

Build Status Go Report Card

Features

  • Supports basic file operations like ls, cp, mkdir, mv (via the Files API)
  • Supports search
  • Supports file revisions and file restore
  • Chunked uploads for large files, paginated listing for large directories
  • Supports a growing set of Team operations

Installation

Download pre-compiled binaries for Mac, Windows and Linux from the releases page.

Mac OSX Installation of pre-compiled binaries

These instructions aim to help both experts and novice dbxcli users. Please submit an issue if they don't work for you.

  1. Make sure you download and place the binary in a folder that's on your $PATH. If you are unsure what this means, go to step 2. Otherwise, skip to step 3
  2. Create a bin directory under your home directory.
$ mkdir ~/bin
$ cd ~/bin
  1. Add the following line at the end of your ~/.bash_profile file. Link with instructions on how to find this file
export PATH=$PATH:$HOME/bin
  1. Download the dbxcli binary for OSX and rename it. IMPORTANT: Check that the tag v2.1.1 on the URL below is the latest release tag on the Releases page.
$ wget https://github.com/dropbox/dbxcli/releases/download/v2.1.1/dbxcli-darwin-amd64 
$ mv dbxcli-darwin-amd64 dbxcli
  1. Finally, make the binary an executable file and you are good to go!
$ chmod +x dbxcli

Instructions for building yourself

For newcomers the go build process can be a bit arcane, these steps can be followed to build dbxcli yourself.

  1. Make sure git, go, and gox are installed.
  2. Create a Go folder. For example, mkdir $HOME/go or mkdir $HOME/.go. Navigate to it.
  3. go get github.com/dropbox/dbxcli. That's right, you don't manually clone it, this does it for you.
  4. cd ~/go/src/github.com/dropbox/dbxcli (adapt accordingly based on step 2).

Now we need to pause for a second to get development keys.

  1. Head to https://www.dropbox.com/developers/apps (sign in if necessary) and choose "Create app". Use the Dropbox API and give it Full Dropbox access. Name and create the app.
  2. You'll be presented with a dashboard with an "App key" and an "App secret".
  3. Replace the value for personalAppKey in root.go with the key from the webpage.
  4. Replace the value for personalAppSecret with the secret from the webpage.

Finally we're ready to build. Run go build, and you'll see a dbxcli binary has been created in the current directory. Congrats, we're done!

Usage

dbxcli is largely self documenting. Run dbxcli -h for a list of supported commands:

$ dbxcli --help
Use dbxcli to quickly interact with your Dropbox, upload/download files,
manage your team and more. It is easy, scriptable and works on all platforms!

Usage:
  dbxcli [command]

Available Commands:
  cp          Copy files
  du          Display usage information
  get         Download a file
  ls          List files
  mkdir       Create a new directory
  mv          Move files
  put         Upload files
  restore     Restore files
  revs        List file revisions
  rm          Remove files
  search      Search
  team        Team management commands
  version     Print version information

Flags:
      --as-member string   Member ID to perform action as
  -v, --verbose            Enable verbose logging

Use "dbxcli [command] --help" for more information about a command.

$ dbxcli team --help
Team management commands

Usage:
  dbxcli team [command]

Available Commands:
  add-member    Add a new member to a team
  info          Get team information
  list-groups   List groups
  list-members  List team members
  remove-member Remove member from a team

Global Flags:
      --as-member string   Member ID to perform action as
  -v, --verbose            Enable verbose logging

Use "dbxcli team [command] --help" for more information about a command.

The --verbose option will turn on verbose logging and is useful for debugging.

We need your help!

dbxcli is under active development! As you can see from the API docs, we only support a small number of features today and have only scratched the surface of what's possible. We would love feedback from you, our users, to guide what to build next and how to improve the tool.

So please, file feature requests, report bugs or better yet, send us pull requests! More on contributing below.

Contributing

Useful Resources