@apexearth/copy

Copy files via Node or command-line!


Keywords
cp, copy, data, file, files, fs
License
ISC
Install
npm install @apexearth/copy@1.4.1

Documentation

@apexearth/copy

npm (scoped) Travis Status Coverage Status NPM Downloads install size License

Copy files via command line or Node.js.

Why?

  • Resume ability via state saving allows you to copy hundreds of thousands of files without having to start over.
  • Parallel transfers can increase speed of transferring smaller files over network connections such as Samba.
  • Because sometimes you need to copy a lot of stuff!

Installation

Node.js Usage

$ npm i @apexearth/copy

Command Line Usage

$ npm i @apexearth/copy -g

Usage

Node.js Usage

const copy = require('@apexearth/copy')
copy({
    from,                // Source copy path.
    to,                  // Destination copy path.
    recursive,           // Copy recursively.
    overwrite,           // Overwrite existing file
    overwriteMismatches, // Overwrite if size mismatch or from modified date is more recent.
    verbose,             // Verbose output.
    json,                // JSON output. (options: true, "pretty")
    ignoreErrors,        // Continue on errors.
    parallelJobs,        // Number of possible concurrent jobs.
    state,               // Save state for resume ability.
    stateFrequency,      // Save state frequency.
    copyFile,            // Supply your own copyFile function. (from, to, cb)
    readdir,             // Supply your own readdir function. (path, cb)
    stat,                // Supply your own stat function. (path, cb)
})
    .then(() => console.log('done'))
    .catch(err => console.error(err))

Command Line Usage

Usage: node-copy [options] <from> <to>

Options:
  -V, --version               output the version number
  -r, --recursive             Copy recursively.
  -o, --overwrite             Overwrite existing.
  --overwrite-mismatches      Overwrite if size mismatch or from modified date is more recent.
  -v, --verbose               Verbose output.
  -j, --json <format>         JSON output. (options: true, pretty)
  -e, --ignore-errors         Ignore errors.
  -p, --parallel-jobs <n>     Number of possible concurrent jobs. (default: 1)
  -s, --state <file>          Save state to file for resume ability.
  --state-frequency <n>       Save state frequency. (In <n> files saved.) (default: 100)
  -a, --archive <state-file>  Attempt to copy as much as possible using options `-mervs <state-file> -p 4` with restart capabilities.
  -h, --help                  output usage information