2.4 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			2.4 KiB
		
	
	
	
	
	
	
	
copy(src, dest, [options, callback])
Copy a file or directory. The directory can have contents. Like cp -r.
src<String>Note that ifsrcis a directory it will copy everything inside of this directory, not the entire directory itself (see issue #537).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>: 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 isfalse.filter<Function>: Function to filter copied files. Returntrueto include,falseto exclude. Can also return aPromisethat resolves totrueorfalse(or pass in anasyncfunction).
callback<Function>
Example:
const fs = require('fs-extra')
// With a callback:
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
// With Promises:
fs.copy('/tmp/myfile', '/tmp/mynewfile')
.then(() => {
  console.log('success!')
})
.catch(err => {
  console.error(err)
})
// With async/await:
async function example () {
  try {
    await fs.copy('/tmp/myfile', '/tmp/mynewfile')
    console.log('success!')
  } catch (err) {
    console.error(err)
  }
}
example()
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!')
})