# move-file

> Move a file, directory, or symlink - Even works across devices

Latest version **4.1.0** (published 2026-01-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install move-file
pnpm add move-file
yarn add move-file
bun add move-file
```

## Health

**Score 65/100 (B)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.1.0 |
| Published | 2026-01-25 |
| First published | 2017-11-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=20 |
| Dependencies | 0 |
| Unpacked size | 10.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 208 |
| Author | Sindre Sorhus |
| Maintainers | sindresorhus |
| Keywords | move, file, directory, folder, symlink, mv, fs, file-system, devices, partitions |

## Links

- npm: https://www.npmjs.com/package/move-file
- Repository: https://github.com/sindresorhus/move-file
- Homepage: https://github.com/sindresorhus/move-file#readme
- Issues: https://github.com/sindresorhus/move-file/issues
- Funding: https://github.com/sponsors/sindresorhus
- npm.io page: https://npm.io/package/move-file

## Alternatives

- [unionfs](https://npm.io/package/unionfs.md) — 2.2M weekly downloads
- [path-starts-with](https://npm.io/package/path-starts-with.md) — 35.9K weekly downloads
- [redzip](https://npm.io/package/redzip.md) — 1.2K weekly downloads
- [vscode-anymatch](https://npm.io/package/vscode-anymatch.md) — 848 weekly downloads
- [@ledgerhq/coin-filecoin](https://npm.io/package/@ledgerhq/coin-filecoin.md) — 793 weekly downloads

## Recent versions

- 4.1.0 (latest) — 2026-01-25
- 4.0.0 — 2026-01-25
- 3.1.0 — 2023-04-05
- 3.0.0 — 2021-08-12
- 2.1.0 — 2021-06-13
- 2.0.0 — 2020-04-21
- 1.2.0 — 2019-04-04
- 1.1.0 — 2019-03-04
- 1.0.0 — 2017-12-15
- 0.2.0 — 2017-11-03
- 0.1.0 — 2017-11-03

## README

# move-file

> Move a file, directory, or symlink

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, directory, or symlink across partitions and devices.
- Optionally prevent overwriting an existing file.
- Creates non-existent destination directories for you.

## Install

```sh
npm install move-file
```

## Usage

```js
import {moveFile} from 'move-file';

await moveFile('source/unicorn.png', 'destination/unicorn.png');
console.log('The file has been moved');
```

## API

### moveFile(sourcePath, destinationPath, options?)

Returns a `Promise` that resolves when the file, directory, or symlink has been moved.

### moveFileSync(sourcePath, destinationPath, options?)

#### sourcePath

Type: `string`

The file, directory, or symlink you want to move.

#### destinationPath

Type: `string`

Where you want it moved.

#### options

Type: `object`

See [Options](#options-2).

### renameFile(source, destination, options?)

Returns a `Promise` that resolves when the file has been renamed. `source` and `destination` must be in the same directory.

### renameFileSync(source, destination, options?)

#### source

Type: `string`

The file you want to rename.

#### destination

Type: `string`

What you want to rename the file to.

#### options

Type: `object`

See [Options](#options-2).

### Options

##### overwrite

Type: `boolean`\
Default: `true`

Overwrite existing destination file.

##### cwd

Type: `string`\
Default: `process.cwd()`

The working directory to find source files.

The source and destination path are relative to this.

##### 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
- [copy-file](https://github.com/sindresorhus/copy-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

---
_Source: https://npm.io/package/move-file · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
