ECP(1)                                                     ECP(1)

     NAME
          ecp - fast copy, handling errors

     SYNOPSIS
          ecp [ -bcprvZ ] [ -B block-size ] [ -e max-errors ] [ -i
               issect ] [ -o ossect ] [ -s sector-size ] sectors input
               output

     DESCRIPTION
          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:

          -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 per-
              mit 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.

          -i  seeks to sector issect (assuming zero-origin) before
              beginning input.

          -o  seeks to sector ossect (assuming zero-origin) before
              beginning output.

          -p  print reassuring progress reports; helpful mainly when
              dealing with cranky hardware.

          -r  copy sector groups in reverse order, assuming the files
              are seekable; 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

     Page 1                       Plan 9            (printed 11/18/24)

     ECP(1)                                                     ECP(1)

              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 fash-
              ion.  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).

     SEE ALSO
          fcp in cp(1), dd(1), dup(3)

     BUGS
          -i, -o, -r, -v and error retries only work on devices capa-
          ble of seeking.

          The set of options reflects decades of experience dealing
          with troublesome hardware.

          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.

     Page 2                       Plan 9            (printed 11/18/24)