rsync(1) --recursive --info=progress2 --info=name0 --partial --rsh="ssh -q" erik@remote-host:/srv/data/training training/
a fast, versatile, remote (and local) file-copying tool
-r, --recursive
       This tells rsync to copy directories recursively.  See also --dirs (-d).

       Beginning with rsync 3.0.0, the recursive algorithm used is now an incremental scan that uses much
       less memory than before and begins the transfer after the scanning of the  first  few  directories
       have  been  completed.   This  incremental scan only affects our recursion algorithm, and does not
       change a non-recursive transfer.  It is also only possible when both ends of the transfer  are  at
       least version 3.0.0.

       Some  options  require  rsync to know the full file list, so these options disable the incremental
       recursion  mode.   These  include:  --delete-before,   --delete-after,   --prune-empty-dirs,   and
       --delay-updates.   Because  of  this,  the  default  delete  mode when you specify --delete is now
       --delete-during when both ends of the connection are at least 3.0.0 (use --del or  --delete-during
       to  request this improved deletion mode explicitly).  See also the --delete-delay option that is a
       better choice than using --delete-after.

       Incremental recursion can be disabled using the --no-inc-recursive option or its shorter  --no-i-r
       alias.
Local:  rsync [OPTION...] SRC... [DEST]

Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Access via rsync daemon:
  Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
        rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
        rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
--partial
       By  default,  rsync  will delete any partially transferred file if the transfer is interrupted. In
       some circumstances it is more desirable to keep partially transferred files. Using  the  --partial
       option tells rsync to keep the partial file which should make a subsequent transfer of the rest of
       the file much faster.
-e, --rsh=COMMAND
       This option allows you to choose an alternative remote shell  program  to  use  for  communication
       between  the  local  and  remote  copies  of  rsync.  Typically, rsync is configured to use ssh by
       default, but you may prefer to use rsh on a local network.

       If this option is used with [user@]host::module/path, then the remote shell COMMAND will  be  used
       to  run  an  rsync daemon on the remote host, and all data will be transmitted through that remote
       shell connection, rather than through a direct socket connection to a running rsync daemon on  the
       remote host.  See the section "USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION" above.

       Command-line  arguments  are permitted in COMMAND provided that COMMAND is presented to rsync as a
       single argument.  You must use spaces (not tabs or other whitespace) to separate the  command  and
       args  from  each  other,  and  you  can  use single- and/or double-quotes to preserve spaces in an
       argument (but not backslashes).  Note that doubling a single-quote inside a  single-quoted  string
       gives  you  a  single-quote; likewise for double-quotes (though you need to pay attention to which
       quotes your shell is parsing and which quotes rsync is parsing).  Some examples:

    -e 'ssh -p 2234'
    -e 'ssh -o "ProxyCommand nohup ssh firewall nc -w1 %h %p"'

(Note that ssh users can alternately customize site-specific connect options in their  .ssh/config
file.)

You  can  also  choose  the  remote  shell program using the RSYNC_RSH environment variable, which
accepts the same range of values as -e.

See also the --blocking-io option which is affected by this option.
source manpages: rsync