@apexearth/copy
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,
to,
recursive,
overwrite,
overwriteMismatches,
verbose,
json,
ignoreErrors,
parallelJobs,
state,
stateFrequency,
copyFile,
readdir,
stat,
})
.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