rrename 0.1.4

" Opinionated tool to rename files in batch. Match regular expression, replace some characters I consider noise to kebab case
Documentation

rrename

A very opinionated command-line tool/library for file mass-renaming using regex

Installation

Easiest way is to install via cargo:

cargo install rrename

Features

  • rename files in batch
  • restore files after rename in batch
  • denoise files
  • regex substitution
  • verbocity levels ([clap_verbosity_flag] is amazing)
  • case conversion

Example

no arguments run

 tree test
test
├── Another Dir & Co
   ├── Some [some#bs].txt
   └── Some & Track.txt
├── Some Dir
   ├── SOME_⧸fILe.txt
   ├── some,text_file\#_$.txt
   ├── some:, text_file.txt
   └── some'weird'file"with"brackets.txt
├── Some -  Word With III dCi135_
   └── Some Word F3500 dCi135 StereoM10.txt
└── Super
    └── NESTED
        └── UgLy
            └── dIIr
                └── with|file.txt

 rrename -d  test -L 5
2026-02-25T12:04:59.756742Z  INFO rrename::cli: Renamed: 15, depth: 5
2026-02-25T12:04:59.756802Z  INFO rrename: renamed list saved as rrenamed-2026-02-25-12:04:59.txt

 tree test
test
├── another-dir-and-co
   ├── some-and-track.txt
   └── some-[some-bs].txt
├── some-dir
   ├── some-file.txt
   ├── some-text-file-.txt
   ├── some-text-file.txt
   └── some-weird-file-with-brackets.txt
├── some-word-with-iii-dci135
   └── some-word-f3500-dci135-stereom10.txt
└── super
    └── nested
        └── ugly
            └── diir
                └── with-file.txt

 rrename -r rrenamed-2026-02-25-12:04:59.txt
2026-02-25T12:05:14.740507Z  INFO rrename::cli: Restored: 15
2026-02-25T12:05:14.740569Z  INFO rrename: renamed list saved as rrenamed-2026-02-25-12:05:14.txt

 tree test
test
├── Another Dir & Co
   ├── Some [some#bs].txt
   └── Some & Track.txt
├── Some Dir
   ├── SOME_⧸fILe.txt
   ├── some,text_file\#_$.txt
   ├── some:, text_file.txt
   └── some'weird'file"with"brackets.txt
├── Some -  Word With III dCi135_
   └── Some Word F3500 dCi135 StereoM10.txt
└── Super
    └── NESTED
        └── UgLy
            └── dIIr
                └── with|file.txt

using regex to substitute

By default, if you do not specify -s,--sub, all regex matches will be replaced with empty strings.

  ls
3pv-some-file.mp4
   rrename -E "3pv-some-" -s "other-" .
2026-02-25T12:05:14.740507Z  INFO rrename::cli: Renamed: 1
   ls
other-file.mp4

kudos

wrench was taken as a base Powered by jwalk - walkdir on steroids using rayon

License: MIT OR Apache-2.0

clap_verbosity_flag