ECP(1)ECP(1)NAMEecp - fast copy, handling errors
SYNOPSISecp [ -bcprvZ ] [ -B block-size ] [ -e max-errors ] [ -i issect ] [ -o
ossect ] [ -s sector-size ] sectors input output
Ecp copies sectors disk sectors of the specified input file to the
specified output file. Ecp copies multiple sectors (a `block') at a
time for speed. When ecp encounters an I/O error, it transfers the
current block again, assuming the file is seekable, one sector at a
time, prints the sector number(s) of the error(s), and continues copy‐
-b reblock input on short reads; this was used mainly when reading a
pipe on standard input on 4.2+BSD systems.
-B sets the block size (16,384 bytes by default) to block-size.
-c ask for confirmation on /dev/cons before starting the copy.
-e sets a maximum number of consecutive I/O errors to permit at the
beginning of the copy before quitting to max-errors. Lots of con‐
secutive errors may indicate a deeper problem, such as missing
media. By default there is no limit.
-i seeks to sector issect (assuming zero-origin) before beginning
-o seeks to sector ossect (assuming zero-origin) before beginning out‐
-p print reassuring progress reports; helpful mainly when dealing with
-r copy sector groups in reverse order, assuming the files are seek‐
able; this is most useful when input and output overlap.
-s sets the sector size (512 bytes by default) to sector-size.
-v verify the copy by rereading the input and output files after copy‐
ing all sectors. This is intended to force the disk to deliver the
actual data written on it rather than some cached copy. The loca‐
tions of any differences are printed.
-Z `Swizzle' the input: stir the bits around in some fashion.
Intended for diagnosing bad disks by copying a disk to itself a few
times with swizzling on (to defeat caching in operating systems or
fcp in cp(1), dd(1), dup(3)BUGS-i, -o, -r, -v and error retries only work on devices capable of seek‐
The set of options reflects decades of experience dealing with trouble‐
If the input file is a tape and the last record on the tape before a
file mark is less than blocksize bytes long, then ecp will read through
past the file mark and into the next file.