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 copying.

Options are:
–breblock input on short reads; this was used mainly when reading
a pipe on standard input on 4.2+BSD systems.
–Bsets the block size (16,384 bytes by default) to block–size.
–cask for confirmation on /dev/cons before starting the copy.
–esets a maximum number of consecutive I/O errors to permit at
the beginning of the copy before quitting to max–errors. Lots of
consecutive errors may indicate a deeper problem, such as missing
media. By default there is no limit.
–iseeks to sector issect (assuming zero–origin) before beginning
input.
–oseeks to sector ossect (assuming zero–origin) before beginning
output.
–pprint reassuring progress reports; helpful mainly when dealing
with cranky hardware.
–rcopy sector groups in reverse order, assuming the files are seekable;
this is most useful when input and output overlap.
–ssets the sector size (512 bytes by default) to sector–size.
–vverify the copy by rereading the input and output files after
copying all sectors. This is intended to force the disk to deliver
the actual data written on it rather than some cached copy. The
locations 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 disk
controllers).