Version 99 (modified by dkocher, on Dec 18, 2018 at 3:12:03 PM) (diff) |
---|
Table of Contents
Cyberduck Help / Howto / Command Line Interface (CLI)
Cyberduck with a command line interface (CLI) is available for Mac, Windows & Linux. It is installed as duck.
Installation
Mac
Homebrew
Available as a Homebrew package. Use
brew install duck
to install.
MacPorts
(Note: The port file is maintained by a third party)
Use sudo port install duck to install.
Snaphsot Builds
brew install iterate-ch/cyberduck/duck
Package
Download the latest installer package.
Windows
Chocolatey
Available as a Chocolatey package. Use
choco install duck
to install.
MSI Installer
Download the latest setup.
Linux
RPM Package Repository
To add the duck repository to your system you need to put a file duck.repo with following content into /etc/yum.repos.d/.
Snaphsot Builds
Copy and paste
echo -e "[duck-nightly]\n\ name=duck-nightly\n\ baseurl=https://repo.cyberduck.io/nightly/\$basearch/\n\ enabled=1\n\ gpgcheck=0" | sudo tee /etc/yum.repos.d/duck-snapshot.repo > /dev/null
to add the configuration.
Stable Builds
echo -e "[duck-stable]\n\ name=duck-stable\n\ baseurl=https://repo.cyberduck.io/stable/\$basearch/\n\ enabled=1\n\ gpgcheck=0" | sudo tee /etc/yum.repos.d/duck-stable.repo > /dev/null
To install Cyberduck CLI use
sudo yum install duck
DEB Package Repository
Add the duck repositories to your /etc/apt/sources.list manually:
deb https://s3.amazonaws.com/repo.deb.cyberduck.io nightly main deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main
or using
echo -e "deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main" | sudo tee /etc/apt/sources.list.d/cyberduck.list > /dev/null
You need to download the GPG public key from keyserver.ubuntu.com to verify the integrity of the packages:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72
Synchronize the repository using
sudo apt-get update
To install or upgrade Cyberduck CLI use
sudo apt-get install duck
Note: You may get a conflict with another package named duck. As a workaround, install with a specific version number like sudo apt-get install duck=6.7.1.28683.
Arch Linux Package
Manual installation
Packages can also be found for download.
Usage
Usage:duck [options...]
Run --help to get the option screen.
URLs in arguments must be fully qualified. Paths can either denote a remote file (ftps://user@example.net/resource) or folder (ftps://user@example.net/directory/) with a trailing slash. You can reference files relative to your home directory with /~ (ftps://user@example.net/~/).
Connection Profiles
You can install additional connection profiles in the application support directory. Use the --profiles option to reference a connection profile file to use not installed in the standard location.
URI
The <url> argument for --copy, --download, --upload and --synchronize must be fully qualified URIs with protocol, hostname and absolute remote path such as ftp://<hostname>/<folder>/<file> for a file or ftp://<hostname>/<folder>/ for a directory. For cloud storage providers, reference the target container (aka bucket) name in the URI like s3://bucketname/key.
- Windows Azure Storage azure://<container>/<key>
- Backblaze B2 Cloud Storage b2://<container>/<key>
- WebDAV (HTTP) dav://<hostname>/<folder>/<file>
- WebDAV (HTTPS) davs://<hostname>/<folder>/<file>
- DRACOON (Email Address) dracoon://<hostname>/<folder>/<file>
- Dropbox dropbox://<folder>/<file>
- mellifera.local file://<folder>/<file>
- FTP (File Transfer Protocol) ftp://<hostname>/<folder>/<file>
- FTP-SSL (Explicit AUTH TLS) ftps://<hostname>/<folder>/<file>
- Google Drive googledrive://<folder>/<file>
- Google Cloud Storage gs://<container>/<key>
- Microsoft OneDrive onedrive://<folder>/<file>
- Amazon S3 s3://<container>/<key>
- SFTP (SSH File Transfer Protocol) sftp://<hostname>/<folder>/<file>
- Spectra S3 (HTTPS) spectralogic://<container>/<key>
- Rackspace Cloud Files (US) rackspace://<container>/<key>
- Swift (OpenStack Object Storage) swift://<container>/<key>
Generic options
--retry
Retry requests with I/O failures once per default. Useful on connection timeout or latency issues.
--verbose
Print protocol transcript for requests and responses. This includes the HTTP headers.
--nokeychain ===
Do not save passwords in login keychain (macOS), credentials manager (Windows) or plain text password file (Linux).
--quiet ===
Suppress progress messages.
Credentials
You can pass username as part of the URI prepending to the hostname with username@host. Alternatively use the --username option. You can give the password with the --password option or you will be prompted before the connection is opened by the program if no password matching the host is found in your login keychain (OS X) or user configuration shared with Cyberduck (Windows).
Private Key
When connecting with SFTP you can give a file path to a private key with --identity for use with public key authentication.
Tenant Name
When connecting with OpenStack Swift you can set the tenant name (OpenStack Identity Service, Keystone 2.0) or project (OpenStack Identity Service, Keystone 3.0) with --username <tenant>:<user>.
Downloads with --download
Glob pattern support for selecting files to transfer
You can transfer multiple files with a single command using a glob pattern for filename inclusion such as duck --download ftps://<hostname>/directory/*.css .
Uploads with --upload
Glob pattern support for selecting files to transfer
If your shell supports glob expansion you can use a wildcard pattern to select files for upload like duck --upload ftps://<hostname>/directory/ ~/*.jpg.
Use of ~
You can use the tilde to abbreviate the remote path pointing to the remote home folder as in sftp://duck.sh/~/. It will be expanded when constructing absolute paths.
Remote directory listings with --list
Make sure to include a trailing '/' in the path argument to denote a directory. Use the -L option to print permission mask and modification date in addition to filename.
Edit with --edit
You can edit remote files with your preferred editor on your local system using the --edit command. Use the optional --application option to specify the absolute path to the external editor you want to use.
Multiple transfer connections with --parallel
Transfer files with multiple concurrent connections to a server.
Cryptomator
Access to your Cryptomator vaults from the command line. When accessing a vault using --download, --list or --upload, you will be prompted to provide the passphrase for the vault if not found in the keychain.
Samples
Watching changes in directory with fswatch and upload
fswatch is a file change monitor; an application to watch for file system changes. Refer to their documentation.
fswatch -0 ~/Sites/mywebsite/ | xargs -0 -I {} -t sh -c 'f="{}"; duck --upload ftps://<hostname>/sandbox`basename "${f}"` "${f}" -existing overwrite'
Upload build artifacts from continuous integration (Jenkins) to CDN
Use a post build script action.
cd ${WORKSPACE}; find build -name '*.tar' -print0 | xargs -0 -I {} -t sh -c 'f="{}"; duck --quiet --retry --existing skip --region DFW --upload rackspace://<container>/ "${f}"'
Upload files matching glob pattern to Windows Azure
duck --username kahy9boj3eix --upload azure://kahy9boj3eix.blob.core.windows.net/<containername>/ *.zip
Download files matching glob pattern from FTP
duck -v --download ftp://mirror.switch.ch/mirror/apache/dist/httpd/*.gz ~/Downloads
Download file from Amazon S3 public bucket
duck --verbose --download s3://repo.maven.cyberduck.io/releases/ch/cyberduck/s3/6.1.0/s3-6.1.0.jar ~/Downloads/
Application Support Directory
Profiles
The directory location is printed with --help following the list of supported protocols.
macOS
The support directory is ~/Library/Group Containers/G69SCX94XU.duck/Library/Application Support/duck/ on Mac. You can install third party profiles in ~/Library/Group Containers/G69SCX94XU.duck/Library/Application Support/duck/Profiles.
Windows
Install additional profiles in %AppData%\Cyberduck\Profiles on Windows.
Linux
The support directory is ~/.duck/ on Linux. You can install third party profiles in ~/.duck/profiles/.
Preferences
You can override default preferences by setting environment variables in your shell.
env "property.name=value" duck
Thirdparty References
Attachments (1)
- Cyberduck CLI Setup.png (48.6 KB) - added by dkocher on Dec 4, 2014 at 2:02:59 PM.
Download all attachments as: .zip