Documentation

xcp – extended cp

xcp is a (partial) clone of the Unix cp command.

It is not intended as a full replacement, but as a companion utility with some more user-friendly feedback and some optimisations that make sense under certain tasks.

This is free and open source software.

Key Features

  • Displays a progress-bar, both for directory and single file copies. This can be disabled with –no-progress.
  • On Linux it uses copy_file_range call to copy files. This is the most efficient method of file-copying under Linux; in particular it is filesystem-aware, and can massively speed-up copies on network mounts by performing the copy operations server-side. However, unlike copy_file_range sparse files are detected and handled appropriately.
  • Optimised for ‘modern’ systems (i.e. multiple cores, copious RAM, and solid-state disks, especially ones connected into the main system bus, e.g. NVMe).
  • Optional aggressive parallelism for systems with parallel IO. Quick experiments on a modern laptop suggest there may be benefits to parallel copies on NVMe disks. This is obviously highly system-dependent.
  • Switchable ‘drivers’ to facilitate experimenting with alternative strategies for copy optimisation. Currently 2 drivers are available:
    • ‘parfile’: the previous hard-coded xcp copy method, which parallelises tree-walking and per-file copying. This is the default.
    • ‘parblock’: An experimental driver that parallelises copying at the block level. This has the potential for performance improvements in some architectures, but increases complexity.
  • Non-Linux Unix-like OSs (OS X, *BSD) are supported via fall-back operation (although sparse-files are not yet supported in this case).
  • Optionally understands .gitignore files to limit the copied directories.
  • Optional native file-globbing.

Website: github.com/tarka/xcp
Support:
Developer: Steve Smith
License: GNU General Public License v3.0

xcp help
Click image for full size

xcp is written in Rust. Learn Rust with our recommended free books and free tutorials.


Related Software

Alternatives to cp
xcpExtended cp written in Rust
fcpSignificantly faster alternative to cp
gcpGoffi's cp, a fancy file copier
pycpcp and mv with a progressbar
rsyncFast incremental file transfer
Fast Unix CommandsProvides alternatives for rm and cp
renameutilsMake copying files faster and less cumbersome
cpy-cliAccepts globs and creates non-existent destination directories.
cpzZippy alternative to cp
lunasSyncing tool handling more than two directories locally and remotely
BCMRBetter Copy Move Remove
cpxModern replacement for the traditional cp command
advcpmvPatch for cp
RCP ToolsManage large filesets

Best Free and Open Source Software Explore our carefully curated directory of recommended free and open source software, covering every major software category.

The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more.

Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted