node-fs-extra/docs/copy-sync.md
Mani Maghsoudlou 0bc36ffd5e v8 release (#667)
* Remove secure-random from dev-deps (#610)

* fix ensureDir() doc

* moveSync: refactor to use renameSync

* copy*(): fix copying bind-mounted directories (#618)

* copy*(): fix copying bind-mounted dirs

* copy*(): fix case-insensitive-paths tests

* copy*(): refactor to check paths more efficiently

* destructure stats object after checking err

* move*(): check paths before moving

* move*(): add case-insensitive paths test

* remove unnecessary done callback from test

* copy*(): add new option checkPathsBeforeCopying

* update copy*() docs to include checkPathsBeforeCopying

* some reformatting

* copy*(): use fs.stat with bigint option

* move*(): refactor to use the internal stat functions

* move*(): add test for prevent moving identical

* disable graceful-fs in copy and move tests

* fix parsing node version

* tiny reformat

* update copy*() docs

* refactor parsing node version

* use semver to parse node version in tests
2019-05-11 10:08:57 -04:00

1.7 KiB

copySync(src, dest[, options])

Copy a file or directory. The directory can have contents. Like cp -r.

  • src <String> Note that if src is a directory it will copy everything inside of this directory, not the entire directory itself (see issue #537).
  • dest <String> Note that if src is a file, dest cannot be a directory (see issue #323).
  • options <Object>
    • overwrite <boolean>: overwrite existing file or directory, default is true. Note that the copy operation will silently fail if you set this to false and the destination exists. Use the errorOnExist option to change this behavior.
    • errorOnExist <boolean>: when overwrite is false and the destination exists, throw an error. Default is false.
    • dereference <boolean>: dereference symlinks, default is false.
    • preserveTimestamps <boolean>: When true, will set last modification and access times to the ones of the original source files. When false, timestamp behavior is OS-dependent. Default is false.
    • filter <Function>: Function to filter copied files. Return true to include, false to exclude.

Example:

const fs = require('fs-extra')

// copy file
fs.copySync('/tmp/myfile', '/tmp/mynewfile')

// copy directory, even if it has subdirectories or files
fs.copySync('/tmp/mydir', '/tmp/mynewdir')

Using filter function

const fs = require('fs-extra')

const filterFunc = (src, dest) => {
  // your logic here
  // it will be copied if return true
}

fs.copySync('/tmp/mydir', '/tmp/mynewdir', { filter: filterFunc })