Command line clients
- supports various interfaces
- does parallel transfers
- allows filtering a la rsync's
- seems better behaved around large amounts of files than duck is
- messages could be made more human-readable and/or computer-parseable
- transfers while figuring out what to sync. Can be much faster than preparing first
- (supports the various protocols that cyberduck does)
- parallel transfers itself
- starts transfers only after completely preparing it. Worst case this can take much longer
Cadaver (*nix, cygwin)
- interface like CLI ftp
curl/libcurl (win, lin, osx, more)
(Haven't looked at yet):
Davix (lin, osx)
kioclient cp file.txt 'webdavs://email@example.com:443/'
- less featured than e.g. cadaver
- low on features?
rclone aims to be an rsync-alike for a few handfuls of cloudy services.
..in that it selects by mtime+size (not the rolling-hash changes). Note that plain WebDAV does not expose mtime, but owncloud and nextcoud do and this is supported.
By default it will parallelize, and retry a bunch, so is relatively fast and robust.
- Download from https://rclone.org/downloads/
- create a named configuration for your remote site (stores an ini-like file in a place like ~/.config/rclone/rclone.conf), via
Use the various subcommands, e.g.
rclone copy /home/source remotename:dirname # copy to or from a remote location rclone ls remote: # list directories (lsd), trees (ls)
Note that you can use filtering imitating rsync's, e.g.
rclone copy /local remote:rpath -f '+ *.jpg' -f '- *'
And tricks like
rclone lsf --files-only -R --format p remote:path >flist.txt #, editing that file, and doing rclone copy remote:path local/path -v --include-from flist.txt
- use -n (--dry-run) to check that filtering does what you think it does
- gives you that '#errors, #checked, #transferred, transferring:' summary at the given interval
- (currently) only appears when also using -v
- though in recent versions you can get it without -v via
- --log-level is similar to -v
- -vv is DEBUG
- -v is INFO
- default is NOTICE (prints mostly errors)
- -q is ERROR
Don't use relative paths, it gets confused by them, with less-than-useful errors.
--existing / -e
- -e resume appends existing files
- -e skip skips files that exist at all
- -e compare skips files that match size and modification date (and protocol allowing, checksum(verify))
- -e overwrite overwrites all files that exist already
- -e cancel
- -e similar
- -e rename uploads under a filename with a timestamp
Cyberduck (win, osx) (free)
WinSCP (win) (free)
KDE's conqueror (linux)
- File > Connect to
- note: start the URL with or
package name is davfs2
filesystem in fstab is is davfs