rcp
Copy. Here or across hosts.
Copy files and directory trees locally or between Linux hosts. Preserve metadata, track progress, and tune concurrency when you need to.
Copy examplesThe Linux fileset toolkit
Copy files, remove directory trees, and manage permissions efficiently. For everyday work and millions of files on Linux.
# copy a directory tree $ rcp ./dataset ./dataset-copy \ --progress --summary
# or send it to another host $ rcp ./dataset host:/data/dataset \ --auto-deploy-rcpd --progress
# remove an old scratch directory $ rrm ./scratch/old-run \ --progress --summary
# recursive removal, with progress
# and a summary when the work is done
# set a tree's group and permissions $ rchm --group data \ --mode "f:g+rw d:g+rwxs" \ ./dataset --progress --summary
# separate rules for files and directories
Three fundamental operations, with tools built to handle large directory trees.
Copy files and directory trees locally or between Linux hosts. Preserve metadata, track progress, and tune concurrency when you need to.
Copy examplesClear out scratch space, old datasets, and build output. Remove large filesets with progress reporting and a summary of the work.
Removal documentationChange ownership, groups, and permissions recursively. Apply different rules to files and directories in the same operation.
Permissions guideA million files is a useful place to start. In these shared-filesystem measurements, default rcp completes the copy in minutes.
From the performance report. 1,024,000 files × 1 MB (1.024 TB), copied within each filesystem. Mean command wall time; lower is faster. These are two workloads from the report, not a general speedup claim. Filesystems use different hardware; the charts compare tools within each setting.
On the tested Linux source tree, local rcp and cp both take about 2.5 seconds. The report also covers remote transfers, NFS, XFS, ZFS, and workloads where other settings or tools perform better.
Install on Linux with Cargo or Nix, or get a Debian or RPM package from the releases.
Installation guide$ cargo install rcp-tools-rcp \
rcp-tools-rrm rcp-tools-rchm$ rcp ./dataset ./dataset-copy --progressRead the destination-path and overwrite rules ↗