Tiny and Powerful C++ cmd tool to rename recursively paths on Linux, useful for batch renaming.
Multithreaded at the top level with each input path being assigned to a separate thread and at the low-level where batches each consisting of 100 folders max and 1000 files max are processed by separate threads.
Minimal I/O writes, since v1.0.4+ it checks and renames only when necessary.
Default and recommended installation path is ~/.local/bin/bulk_rename++, no need to run as ROOT unless of course you know what you are doing.
bulk-rename-plus v1.0.0
Renamed to upperCase: 20249 file(s) and 2124 folder(s) from 1 input path(s) in 0.9 second(s)
bulk-rename-plus v1.4.4
Renamed to upperCase: 20249 file(s) and 2124 folder(s) from 1 input path(s) in 1.6 second(s)
bulk-rename-plus v1.5.2
Renamed to upperCase: 20249 file(s) and 2124 folder(s) from 1 input path(s) in 2.5 second(s)
bulk-rename-plus v1.5.3+
Renamed to upperCase: 20249 file(s) and 2124 folder(s) from 1 input path(s) in 1.1 second(s)
Usage: bulk_rename++ [OPTIONS] [MODE] [PATHS]
Options:
-dstands for recursion depth level (optional).-fistands for exclusive file renaming (optional).-fostands for exclusive folder renaming (optional).-nistands for enabling headless mode (optional).-symstands for treating symlinks like regular files or folders (optional).-coption stands for case set.-ceoption stands for case set for file extensions.-cpoption stands for case set including the lowest parent dir(s).-vor--verboseoption stands for enabling verbose output without skipped files/folders (optional).-vsoption stands for enabling verbose output with skipped files/folders (optional).-vsooption stands for enabling verbose output with skipped files/folders only (optional).--versionprint version.
titleConvert names to titleCase (e.g., test => Test)upperConvert names to upperCase (e.g., Test => TEST)lowerConvert names to lowerCase (e.g., Test => test)reverseReverse current case in names (e.g., Test => tEST)
snakeConvert names to snakeCase (e.g., Te st => Te_st)rsnakeReverse snakeCase in names (e.g., Te_st => Te st)kebabConvert names to kebabCase (e.g., Te st => Te-st)rkebabReverse kebabCase in names (e.g., Te-st => Te st)camelConvert names to camelCase (e.g., Te st => teSt)rcamelReverse camelCase in names (e.g., TeSt => te st)pascalConvert names to pascalCase (e.g., Te st => TeSt)rpascalReverse pascalCase in names (e.g., TeSt => Te St)sentenceConvert names to sentenceCase (e.g., Te st => Te St)
bakAdd .bak on file extension names (e.g., Test.txt => Test.txt.bak)rbakRemove .bak from file extension names (e.g., Test.txt.bak => Test.txt)noextRemove file extensions (e.g., Test.txt => Test)
sequenceAppend numeric sequence to names alphabetically (e.g., Test => 001_Test)rsequenceRemove numeric sequence from names (e.g., 001_Test => Test)dateAppend current date to names (e.g., Test => Test_20240215)rdateRemove date from names (e.g., Test_20240215 => Test)rnumericRemove numeric characters from names (e.g., 1Te0st2 => Test)
rbraRemove [ ] { } ( ) from names (e.g., [{Test}] => Test)roperandRemove - + > < = * from names (e.g., =T-e+s < t > => Test)rspecialRemove special characters from names (e.g., Tes\t!@#$%^|&~`'"";? => Test)swapSwap upper-lower case for names (e.g., Test => TeSt)swaprSwap lower-upper case for names (e.g., Test => tEsT)
for more help and usage examples:
bulk_rename++ -h or bulk_rename++ --help.
To improve the performance and compatibility of windows apps on a case sensitive linux file system with wine, use lower case mode exclusively.
More info here: https://wiki.winehq.org/Case_Insensitive_Filenames.
- Download binary from latest release.
- Download from source and compile with
make. - If on arch, or on an arch based distro with
yay -S bulk-rename-plus