copy(src, dest, [options, callback])
Copy a file or directory. The directory can have contents. Like cp -r.
src<String>dest<String>Note that ifsrcis a file,destcannot be a directory (see issue #323).options<Object>overwrite<boolean>: overwrite existing file or directory, default istrue. Note that the copy operation will silently fail if you set this tofalseand the destination exists. Use theerrorOnExistoption to change this behavior.errorOnExist<boolean>: whenoverwriteisfalseand the destination exists, throw an error. Default isfalse.dereference<boolean>: dereference symlinks, default isfalse.preserveTimestamps<boolean>: will set last modification and access times to the ones of the original source files, default isfalse.filter<Function>: Function to filter copied files. Returntrueto include,falseto exclude. This can also be a RegExp, however this is deprecated (See issue #239 for background).
callback<Function>
Example:
const fs = require('fs-extra')fs.copy('/tmp/myfile', '/tmp/mynewfile', err => {if (err) return console.error(err)console.log('success!')}) // copies filefs.copy('/tmp/mydir', '/tmp/mynewdir', err => {if (err) return console.error(err)console.log('success!')}) // copies directory, even if it has subdirectories or files// Promise usage:fs.copy('/tmp/myfile', '/tmp/mynewfile').then(() => {console.log('success!')}).catch(err => {console.error(err)})
Using filter function
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!')})
