# move-file > Move a file The built-in [`fs.rename()`](https://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback) is just a JavaScript wrapper for the C `rename(2)` function, which doesn't support moving files across partitions or devices. This module is what you would have expected `fs.rename()` to be. ## Highlights - Promise API. - Supports moving a file across partitions and devices. - Optionally prevent overwriting an existing file. - Creates non-existent destination directories for you. ## Install ``` $ npm install move-file ``` ## Usage ```js const moveFile = require('move-file'); (async () => { await moveFile('source/unicorn.png', 'destination/unicorn.png'); console.log('The file has been moved'); })(); ``` ## API ### moveFile(source, destination, options?) Returns a `Promise` that resolves when the file has been moved. ### moveFile.sync(source, destination, options?) #### source Type: `string` File you want to move. #### destination Type: `string` Where you want the file moved. #### options Type: `object` ##### overwrite Type: `boolean`\ Default: `true` Overwrite existing destination file. ##### directoryMode Type: `number`\ Default: `0o777` [Permissions](https://en.wikipedia.org/wiki/File-system_permissions#Numeric_notation) for created directories. It has no effect on Windows. ## Related - [move-file-cli](https://github.com/sindresorhus/move-file-cli) - CLI for this module - [cp-file](https://github.com/sindresorhus/cp-file) - Copy a file - [cpy](https://github.com/sindresorhus/cpy) - Copy files - [make-dir](https://github.com/sindresorhus/make-dir) - Make a directory and its parents if needed