| 
						 | 
						- [](https://travis-ci.org/isaacs/rimraf) [](https://david-dm.org/isaacs/rimraf) [](https://david-dm.org/isaacs/rimraf#info=devDependencies)
 - 
 - The [UNIX command](http://en.wikipedia.org/wiki/Rm_(Unix)) `rm -rf` for node.
 - 
 - Install with `npm install rimraf`, or just drop rimraf.js somewhere.
 - 
 - ## API
 - 
 - `rimraf(f, [opts], callback)`
 - 
 - The first parameter will be interpreted as a globbing pattern for files. If you
 - want to disable globbing you can do so with `opts.disableGlob` (defaults to
 - `false`). This might be handy, for instance, if you have filenames that contain
 - globbing wildcard characters.
 - 
 - The callback will be called with an error if there is one.  Certain
 - errors are handled for you:
 - 
 - * Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of
 -   `opts.maxBusyTries` times before giving up, adding 100ms of wait
 -   between each attempt.  The default `maxBusyTries` is 3.
 - * `ENOENT` - If the file doesn't exist, rimraf will return
 -   successfully, since your desired outcome is already the case.
 - * `EMFILE` - Since `readdir` requires opening a file descriptor, it's
 -   possible to hit `EMFILE` if too many file descriptors are in use.
 -   In the sync case, there's nothing to be done for this.  But in the
 -   async case, rimraf will gradually back off with timeouts up to
 -   `opts.emfileWait` ms, which defaults to 1000.
 - 
 - ## options
 - 
 - * unlink, chmod, stat, lstat, rmdir, readdir,
 -   unlinkSync, chmodSync, statSync, lstatSync, rmdirSync, readdirSync
 - 
 -     In order to use a custom file system library, you can override
 -     specific fs functions on the options object.
 - 
 -     If any of these functions are present on the options object, then
 -     the supplied function will be used instead of the default fs
 -     method.
 - 
 -     Sync methods are only relevant for `rimraf.sync()`, of course.
 - 
 -     For example:
 - 
 -     ```javascript
 -     var myCustomFS = require('some-custom-fs')
 - 
 -     rimraf('some-thing', myCustomFS, callback)
 -     ```
 - 
 - * maxBusyTries
 - 
 -     If an `EBUSY`, `ENOTEMPTY`, or `EPERM` error code is encountered
 -     on Windows systems, then rimraf will retry with a linear backoff
 -     wait of 100ms longer on each try.  The default maxBusyTries is 3.
 - 
 -     Only relevant for async usage.
 - 
 - * emfileWait
 - 
 -     If an `EMFILE` error is encountered, then rimraf will retry
 -     repeatedly with a linear backoff of 1ms longer on each try, until
 -     the timeout counter hits this max.  The default limit is 1000.
 - 
 -     If you repeatedly encounter `EMFILE` errors, then consider using
 -     [graceful-fs](http://npm.im/graceful-fs) in your program.
 - 
 -     Only relevant for async usage.
 - 
 - * glob
 - 
 -     Set to `false` to disable [glob](http://npm.im/glob) pattern
 -     matching.
 - 
 -     Set to an object to pass options to the glob module.  The default
 -     glob options are `{ nosort: true, silent: true }`.
 - 
 -     Glob version 6 is used in this module.
 - 
 -     Relevant for both sync and async usage.
 - 
 - * disableGlob
 - 
 -     Set to any non-falsey value to disable globbing entirely.
 -     (Equivalent to setting `glob: false`.)
 - 
 - ## rimraf.sync
 - 
 - It can remove stuff synchronously, too.  But that's not so good.  Use
 - the async API.  It's better.
 - 
 - ## CLI
 - 
 - If installed with `npm install rimraf -g` it can be used as a global
 - command `rimraf <path> [<path> ...]` which is useful for cross platform support.
 - 
 - ## mkdirp
 - 
 - If you need to create a directory recursively, check out
 - [mkdirp](https://github.com/substack/node-mkdirp).
 
 
  |