Move files and folders to the trash
Works on macOS (10.12+), Linux, and Windows (8+).
Note: The Linux implementation is not very good and not maintained. Help welcome. If no one steps up to help maintain it, I will eventually remove Linux support.
In contrast to fs.unlink, del, and rimraf which permanently delete files, this only moves them to the trash, which is much safer and reversible.
Install
npm install trashUsage
import trash from 'trash';
await trash(['*.png', '!rainbow.png']);API
trash(input, options?)
Returns a Promise.
input
Type: string | string[]
Accepts paths and glob patterns.
options
Type: object
glob
Type: boolean
Default: true
Enable globbing when matching file paths.
CLI
To install the trash command, run:
$ npm install --global trash-cli
Info
On macOS, macos-trash is used.
On Linux, the XDG spec is followed.
On Windows, recycle-bin is used.
FAQ
But I can do the same thing with mv
Not really. The mv command isn't cross-platform and moving to trash is not just about moving the file to a "trash" directory. On all OSes you'll run into file conflicts. The user won't easily be able to restore the file. It won't work on an external drive. The trash directory location varies between Windows versions. For Linux, there's a whole spec you need to follow. On macOS, you'll lose the Put back feature.
Related
- trash-cli - CLI for this module
- empty-trash - Empty the trash
- del - Delete files and folders

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
