mirror of
https://github.com/jprichardson/node-fs-extra.git
synced 2026-01-25 16:42:57 +00:00
48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# copy(src, dest, [options], callback)
|
|
|
|
Copy a file or directory. The directory can have contents. Like `cp -r`.
|
|
|
|
**Sync:** `copySync()`
|
|
|
|
## Options:
|
|
- 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): will set last modification and access times to the ones of the original source files, default is `false`.
|
|
- filter: Function to filter copied files. Return `true` to include, `false` to exclude. This can also be a RegExp, however this is deprecated (See [issue #239](https://github.com/jprichardson/node-fs-extra/issues/239) for background).
|
|
|
|
## Example:
|
|
|
|
```js
|
|
const fs = require('fs-extra')
|
|
|
|
fs.copy('/tmp/myfile', '/tmp/mynewfile', err => {
|
|
if (err) return console.error(err)
|
|
|
|
console.log('success!')
|
|
}) // copies file
|
|
|
|
fs.copy('/tmp/mydir', '/tmp/mynewdir', err => {
|
|
if (err) return console.error(err)
|
|
|
|
console.log('success!')
|
|
}) // copies directory, even if it has subdirectories or files
|
|
```
|
|
|
|
**Using filter function**
|
|
|
|
```js
|
|
const fs = require('fs-extra')
|
|
|
|
const filterFunc = (src, dest) => {
|
|
// your logic here
|
|
// it will be copied if return true
|
|
}
|
|
|
|
fs.copy('/tmp/mydir', '/tmp/mynewdir', { filter: filterFunc }, err => {
|
|
if (err) return console.error(err)
|
|
|
|
console.log('success!')
|
|
})
|
|
```
|