The pcp command


pcp [options] <source> [<source> ...] <destination>


The pcp command is a is a wrapper that starts several sync processes to copy directory trees in parallel. This is allows much better copying performance on file system that have relatively high latency when retrieving individual files like S3QL.

Note: Using this program only improves performance when copying from an S3QL file system. When copying to an S3QL file system, using pcp is more likely to decrease performance.


The pcp command accepts the following options:

--log <target>

Destination for log messages. Specify none for standard output or syslog for the system logging daemon. Anything else will be interpreted as a file name. Log files will be rotated when they reach 1 MiB, and at most 5 old log files will be kept. Default: None


be really quiet

--debug-modules <modules>

Activate debugging output from specified modules (use commas to separate multiple modules, ‘all’ for everything). Debug messages will be written to the target specified by the --log option.


Activate debugging output from all S3QL modules. Debug messages will be written to the target specified by the --log option.


just print program version and exit


Pass -aHAX option to rsync.

--processes <no>

Number of rsync processes to use (default: 10).

Exit Codes

pcp may terminate with the following exit codes:


Everything went well.


An unexpected error occurred. This may indicate a bug in the program.


Invalid command line argument or configuration file key.

See Also

pcp is shipped as part of S3QL,