mirror of
https://github.com/jprichardson/node-fs-extra.git
synced 2026-01-25 16:42:57 +00:00
* Clarify docs for copy*() filter Fixes #843 * Implement suggestion https://github.com/jprichardson/node-fs-extra/pull/884#discussion_r608216178
38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
# copySync(src, dest[, options])
|
|
|
|
Copy a file or directory. The directory can have contents.
|
|
|
|
- `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](https://github.com/jprichardson/node-fs-extra/issues/537)).
|
|
- `dest` `<String>` Note that if `src` is a file, `dest` cannot be a directory (see [issue #323](https://github.com/jprichardson/node-fs-extra/issues/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/directories. Return `true` to copy the item, `false` to ignore it.
|
|
|
|
## Example:
|
|
|
|
```js
|
|
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**
|
|
|
|
```js
|
|
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 })
|
|
```
|