# find-up [](https://travis-ci.org/sindresorhus/find-up) [](https://ci.appveyor.com/project/sindresorhus/find-up/branch/master) > Find a file or directory by walking up parent directories ## Install ``` $ npm install find-up ``` ## Usage ``` / └── Users └── sindresorhus ├── unicorn.png └── foo └── bar ├── baz └── example.js ``` `example.js` ```js const findUp = require('find-up'); (async () => { console.log(await findUp('unicorn.png')); //=> '/Users/sindresorhus/unicorn.png' console.log(await findUp(['rainbow.png', 'unicorn.png'])); //=> '/Users/sindresorhus/unicorn.png' })(); ``` ## API ### findUp(filename, [options]) Returns a `Promise` for either the filepath or `null` if it couldn't be found. ### findUp([filenameA, filenameB], [options]) Returns a `Promise` for either the first filepath found (by respecting the order) or `null` if none could be found. ### findUp.sync(filename, [options]) Returns a filepath or `null`. ### findUp.sync([filenameA, filenameB], [options]) Returns the first filepath found (by respecting the order) or `null`. #### filename Type: `string` Filename of the file to find. #### options Type: `Object` ##### cwd Type: `string`<br> Default: `process.cwd()` Directory to start from. ## Related - [find-up-cli](https://github.com/sindresorhus/find-up-cli) - CLI for this module - [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file - [pkg-dir](https://github.com/sindresorhus/pkg-dir) - Find the root directory of an npm package - [resolve-from](https://github.com/sindresorhus/resolve-from) - Resolve the path of a module like `require.resolve()` but from a given path ## License MIT © [Sindre Sorhus](https://sindresorhus.com)