19 releases

0.6.5 Oct 24, 2023
0.6.3 Sep 6, 2023
0.6.2 Jul 5, 2023
0.6.1 Feb 28, 2023
0.4.3 Feb 27, 2022

#257 in Filesystem

45 downloads per month




A CLI tool to rename files to randomly generated strings.

Quick Start

# rename `path/to/foo` and `path/to/bar.txt` to randomly generated names
rng-rename path/to/foo path/to/bar.txt

The defaults are sensible, so you can expect something like this:

Batch #1/1:
        "/abs/path/to/foo" -> "09c43d3d"
        "/abs/path/to/bar.txt" -> "67aec57d.txt"
Confirm batch? You can proceed(p), skip(s), or halt(h): proceed
Renamed 2 files. Done.

Markdown doesn't show colours, but the real thing does!

rng-rename on Alacritty

There are plenty of various options available. You can for example:

  • Preview using the --dry-run flag
  • Choose which character set to use for random names using the --char-set option
  • Specify the number of random characters using the --length option
  • Choose upper/lower/mixed case where applicable using the --case option
  • Set a prefix and/or a suffix to the randomly generated name using --prefix and --suffix options
  • Choose what to do with the file extension using the --ext-mode option

And more. For full usage, run:

rng-rename --help


Suppose you downloaded a few hundred images to use as your desktop wallpapers. You have a wallpaper tool that cycles through them, but unfortunately it only supports filename-ordering, whereas you prefer to have the images shuffled.

Well, rng-rename to the rescue! Simply run this tool on all your images and the filename-ordering is completely scrambled.

You can also use this tool for data analysis purposes. A data scientist might want to randomise their dataset before running some analysis, but keep the same ordering over several runs. rng-rename is useful in this case too.

I guess you can say rng-rename is a tool looking for a purpose. Ultimately it is up to you, the user, to give it a one.


from crates.io

rng-rename on crates.io

cargo install rng-rename

from AUR

rng-rename on AUR

# with paru
paru rng-rename

# or with yay
yay rng-rename


All ideas and pull requests are welcomed! Please abide by Rust's official code of conduct.

For an incomplete list of things that could use improvement, please see Errata.md.


~169K SLoC