renamer v1.0.0 and this documentation is a WIP
renamer
Renamer is a command-line utility to help rename files and folders. It is flexible and extensible via plugins.
Disclaimer
Always run this tool with the --dry-run
option until you are confident the results look correct.
Synopsis
As input, renamer takes a list of filenames or glob patterns plus some options describing how you would like the files to be renamed.
$ renamer [options] [file...]
Trivial example. It will replace the text jpeg
with jpg
in all file and directory names in the current directory.
$ renamer --find jpeg --replace jpg *
As above but operates on all files and folders recursively.
$ renamer --find jpeg --replace jpg "**"
If no filesnames/patterns are specified, renamer will look for a newline-separated list of filenames on standard input. This approach is useful for crafting a more specific input list using tools like find
. This example operates on files modified less than 20 minutes ago.
$ find . -mtime -20m | renamer --find jpeg --replace jpg
Same again but with a hand-rolled input of filenames and glob patterns. Create an input text file, e.g. files.txt
:
house.jpeg
garden.jpeg
img/*
Then pipe it into renamer.
$ cat files.txt | renamer --find jpeg --replace jpg
Simple example using a regular expression literal. The case-insensitive pattern /one/i
matches the input file ONE.jpg
, renaming it to two.jpg
.
$ renamer --find "/one/i" --replace "two" ONE.jpg
If the built-in replace behaviour doesn't fit your needs you can supply a custom replace plugin. For example, this trivial plugin appends the extension .jpg
to every input file. Save it as my-plugin.js
.
module.exports = PluginBase => class Jpg extends PluginBase {
replace (filePath) {
return filePath + '.jpg'
}
}
Use your custom replace plugin by supplying its filename to --plugin
.
$ renamer --plugin my-plugin.js images/*
Further reading
Please see the wiki for more documentation and examples. For the full list of command-line options, see here. For more information on Regular Expressions, see this useful guide.
Install
$ npm install -g renamer@next
© 2012-18 Lloyd Brookes <75pound@gmail.com>. Documented by jsdoc-to-markdown.