cp
--

.. code-block:: text

  cp [--async] [--atomic] [--rate=<rate>] [--streams=<n>] [--depth=<d>] [--checksum] [--no-overwrite|-k] [--preserve|-p] [--recursive|-r|-R] [-s|--silent] [-a] [-n] [-S] [-d[=][<lvl>] <src> <dst>
  '[eos] cp ..' provides copy functionality to EOS.
    <src>|<dst> can be root://<host>/<path>, a local path /tmp/../ or an eos path /eos/ in the connected instance
  Options:
    --async         : run an asynchronous transfer via a gateway server (see 'transfer submit --sync' for the full options)
    --atomic        : run an atomic upload where files are only visible with the target name when their are completely uploaded [ adds ?eos.atomic=1 to the target URL ]
    --rate          : limit the cp rate to <rate>
    --streams       : use <#> parallel streams
    --depth         : depth for recursive copy
    --checksum      : output the checksums
    -a              : append to the target, don't truncate
    -p              : create destination directory
    -n              : hide progress bar
    -S              : print summary
    -d | --debug          : enable debug information (optional <lvl>=1|2|3)
    -s | --silent         : no output outside error messages
    -k | --no-overwrite   : disable overwriting of files
    -P | --preserve       : preserves file creation and modification time from the source
    -r | -R | --recursive : copy source location recursively
.. code-block:: text

  Remark: 
    If you deal with directories always add a '/' in the end of source or target paths e.g. if the target should be a directory and not a file put a '/' in the end. To copy a directory hierarchy use '-r' and source and target directories terminated with '/' !
  Examples: 
    eos cp /var/data/myfile /eos/foo/user/data/                   : copy 'myfile' to /eos/foo/user/data/myfile
    eos cp /var/data/ /eos/foo/user/data/                         : copy all plain files in /var/data to /eos/foo/user/data/
    eos cp -r /var/data/ /eos/foo/user/data/                      : copy the full hierarchy from /var/data/ to /eos/foo/user/data/ => empty directories won't show up on the target!
    eos cp -r --checksum --silent /var/data/ /eos/foo/user/data/  : copy the full hierarchy and just printout the checksum information for each file copied!
  S3:
    URLs have to be written as:
    as3://<hostname>/<bucketname>/<filename> as implemented in ROOT
    or as3:<bucketname>/<filename> with environment variable S3_HOSTNAME set
    and as3:....?s3.id=<id>&s3.key=<key>
    The access id can be defined in 3 ways:
    env S3_ACCESS_ID=<access-id>          [as used in ROOT  ]
    env S3_ACCESS_KEY_ID=<access-id>      [as used in libs3 ]
    <as3-url>?s3.id=<access-id>           [as used in EOS transfers ]
    The access key can be defined in 3 ways:
    env S3_ACCESS_KEY=<access-key>        [as used in ROOT ]
    env S3_SECRET_ACCESS_KEY=<access-key> [as used in libs3 ]
    <as3-url>?s3.key=<access-key>         [as used in EOS transfers ]
    If <src> and <dst> are using S3, we are using the same credentials on both ends and the target credentials will overwrite source credentials!