xrdcp-old man page

xrdcp-old — copy files


xrdcp-old [options] source destination

options: [--cksum args] [--debug lvl] [--coerce] [--force]
[--help] [--license] [--nopbar] [--posc] [--proxy ipaddr:port]
[--recursive] [--retry time] [--server] [--silent]
[--sources num] [--streams num] [--tpc] [--verbose]
[--version] [--xrate rate]

legacy options: [-adler] [-DSparm string] [-DIparm number]
[-md5] [-np] [-ODcgi] [-OScgi] [-x]


This tool is DEPRECATED. It is what used to be xrdcp prior to xrootd 4.0.0 release. Please use xrdcp instead.

The xrdcp-old utility copies one or more files from one location to another. The data source and destination may be a local or remote file or directory.  Additionally, the data source may also reside on multiple servers.


{-C | --cksum} type[:{value|print}]

obtains the checksum of type (i.e. adler32, crc32, or md5) from the source, computes the checksum at the destination, and verifies that they are the same. If a value is specified, it is used as the source checksum. When print is specified, the checksum at the destination is printed but is not verified.

{-d | --debug} lvl

debug level: 1 (low), 2 (medium), 3 (high)

{-F | --coerce}

ignores locking semantics on the destination file. This option may lead to file corruption if not properly used.

{-f | --force}

re-creates a file if it is already present.

{-h | --help}

displays usage information.

{-H | --license}

displays license terms and conditions.

{-N | --nopbar}

does not display the progress bar.

{-P | --posc}

requests POSC (persist-on-successful-close) processing to create a new file. Files are automatically deleted should they not be successfully closed.

{-D | --proxy} proxyaddr:proxyport

use proxyaddr:proxyport as a SOCKS4 proxy. Only numerical addresses are supported.

{-r | --recursive}

recursively copy all files starting at the given source directory. This option is only supported for local files.


runs as if in a server environment. Used only for server-side third party copy support.

{-s | --silent}

neither produces summary information nor displays the progress bar.

{-y | --sources} num

uses up to num sources to copy the file.

{-S | --streams} num

uses num additional parallel streams to do the transfer. The maximum value is 15. The default is 0 (i.e., use only the main stream).


copies the file from remote server to remote server using third-party-copy protocol (i.e., data flows from server to server). The source and destination servers must support third party copies. Additional security restrictions may apply and may cause the copy to fail if they cannot be satisfied.

{-v | --verbose}

displays summary output.

{-V | -version}

displays version information and immediately exits.

{-X | --xrate} rate

limits the copy speed to the specified rate. The rate may be qualified with the letter k, m, or g to indicate kilo, mega, or giga bytes, respectively. The option only applies when the source or destination is local.

Legacy Options

Legacy options are provided for backward compatability. These are now deprecated and should be avoided. --adler

equivalent to "--cksum adler32:print".

-DIpname numberval

set the internal parameter pname with the numeric value numberval.

-DSpname stringval

set the internal parameter pname with the string value stringval.


equivalent to "--cksum md5:print".


equivalent to "--nopbar".


add cgi information cgi to any destination xrootd URL. You should specify the opaque information directly on the destination URL.


add cgi information cgi to any source xrootd URL.


equivalent to "--sources 12".



a local file, a local directory name suffixed by /, or an xrootd URL in the form of


The absolutepath can be a directory.


a dash (i.e. -) indicating stanard out, a local file, a local directory name suffixed by /, or an xrootd URL in the form


The absolutepath can be a directory.

Examples (Generic)

local file upload:

$ xrdcp-old /tmp/myfile xroot://foo.bar.com//data/myfile

remote file download:

$ xrdcp-old xroot://foo.bar.com//data/myfile /tmp/myfile

remote-remote copy:

$ xrdcp-old xroot://foo.bar.com//data/myfile1 xroot://foo.bar.com//data/myfile2

Examples (Castor)

local file upload to a Castor instance using a specific service class and stager:

$ xrdcp-old /tmp/myfile root://<stagerhost>.cern.ch//castor/cern.ch/data/myfile -ODstagerHost=$STAGE_HOST&svcClass=$STAGE_SVCCLASS
[ you need to escape the '&' in the shell ]

remote file download from a Castor instance using a specific stager:

$ xrdcp-old /tmp/myfile root://<stagerhost>.cern.ch//castor/cern.ch/data/myfile -OSstagerHost=$STAGE_HOST

client-proxy copy to-/from- a Castor instance:

$ xrdcp-old
root://<stagerA>.cern.ch//castor/cern.ch/data/stagerA/myfile -OSstagerHost=<stagerA>
root://<stagerB>.cern.ch//castor/cern.ch/data/stagerB/myfile -ODstagerHost=<stagerA>

[ you cannot copy between stagers using the same logical filename in the castor namespace! ]


Documentation for all components associated with xrdcp-old can be found at http://xrootd.org/docs.html


Errors yield an error message and a non-zero exit status.


License terms can be displayed by typing "xrootd -H".

Support Level

The xrdcp command is supported by the xrootd collaboration. Contact information can be found at