dcp [OPTION] SRC DEST
Parallel MPI application to recursively copy files and directories.
dcp is a file copy tool in the spirit of :manpage:`cp(1)` that evenly distributes work across a large cluster without any centralized state. It is designed for copying files that are located on a distributed parallel file system.
.. option:: -i, --input FILE
Read source list from FILE. FILE must be generated by another tool
from the mpiFileUtils suite.
.. option:: -p, --preserve
Preserve permissions, group, timestamps, and extended attributes.
.. option:: -s, --synchronous
Use synchronous read/write calls (open files with 0_DIRECT)
.. option:: -S, --sparse
Create sparse files when possible (non-functioning).
.. option:: -v, --verbose
Run in verbose mode.
.. option:: -h, --help
Print a brief message listing the :manpage:`dcp(1)` options and usage.
If a long-running copy is interrupted, one should delete the partial copy and run dcp again from the beginning. One may use drm to quickly remove a partial copy of a large directory tree.
To ensure the copy is successful, one should run dcmp after dcp completes to verify the copy, especially if dcp was not run with the -s option.
To copy dir1 as dir2:
mpirun -np 128 dcp /source/dir1 /dest/dir2
To copy contents of dir1 into dir2:
mkdir /dest/dir2 mpirun -np 128 dcp /source/dir1/* /dest/dir2
To copy while preserving permissions, group, timestamps, and attributes:
mpirun -np 128 dcp -p /source/dir1/ /dest/dir2
Using the -S option for sparse files does not work yet at LLNL. If you try to use it then dcp will default to a normal copy.
The maximum supported file name length for any file transferred is approximately 4068 characters. This may be less than the number of characters that your operating system supports.
:manpage:`dbcast(1)`, :manpage:`dchmod(1)`, :manpage:`dcmp(1)`, :manpage:`dcp(1)`, :manpage:`drm(1)`, :manpage:`dstripe(1)`, :manpage:`dwalk(1)`.
The mpiFileUtils source code and all documentation may be downloaded from <https://github.com/hpc/mpifileutils>