# How to bulk convert file names using Node.js

> Learn how to bulk convert file names with a Node.js script that uses glob to find files and fs.copyFile to rename index.md files into slug-based names.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2022-12-13 | Topics: [Node.js](https://flaviocopes.com/tags/node/) | Canonical: https://flaviocopes.com/how-to-bulk-convert-filenames-nodejs/

I had the need to convert my folders structure from something like this:

- `posts/test/index.md`
- `posts/hey-cool-post/index.md`

to this:

- `posts/test.md`
- `posts/hey-cool-post.md`

removing the folder that contains an `index.md` file, and instead have the markdown file itself have the post **slug** (the part that’s used as the post URL).

I used a [Node.js](https://flaviocopes.com/nodejs/) script to do this. The script relies on a glob pattern to find the files — you can test patterns like this in my [glob pattern tester](https://flaviocopes.com/tools/glob-tester/).

Here it is:

```js
const fs = require('fs')
const glob = require('glob')

const root_folder = '.' //search in the current folder

glob(root_folder + '/**/index.md', (err, files) => {
  if (err) {
    console.log('Error', err)
  } else {
    for (const file_path of files) {
      const match = file_path.match(/\/(.*?)\//)
      const folder_name = match[1]

      fs.copyFile(file_path, './' + folder_name + '.md', (err) => {
        if (err) {
          console.log('Error Found:', err)
        } else {
          console.log('File moved!')
        }
      })
    }
  }
})
```
