GPRename is a lightweight GUI batch renamer for files and directories. I moved to the Cinnamon Desktop Environment from GNOME 42 to cut RAM usage and lost the Nautilus bulk rename feature, since Nemo has none. GPRename filled that gap with a window full of rename presets.
This guide covers how to install gprename on the major distros and what each tab does. It also shows the shell commands that match each preset, so you can script the same job later.
Features of GPRename
- It can rename files as well as directories.
- You can insert or delete text at or after a certain number of characters.
- Change the case of either all or the first letter of the files/directories.
- It ships with translations for 14 languages besides English, including Brazilian Portuguese, French, Polish and Spanish.
- You can also rename files with numbers (01, 02, 03 etc.).
- You can replace or remove text, with optional case sensitivity and regular expressions.
- You can preview every change before you commit and undo a rename afterwards.
- You can filter the file list by type, such as only JPG files.
The Debian package downloads at 46.5 kB, so the word lightweight is literal here. GPRename is a Perl script that draws its window through GTK3 bindings, which is why the Debian dependency list reads like a set of Perl modules such as libgtk3-perl and libglib-perl.
GPRename is older than most of its dependencies. A GNU directory entry dates version 1.24 to June 2004, and Wikipedia says the project moved from GTK-Perl to GTK2-Perl in early 2007. The GTK3 move came much later, with the 20220807 release.
Installing GPRename on Linux
It is available in the official repositories of Debian, Ubuntu, Arch Linux and openSUSE, so just open your Terminal application and type the following command:
# In Debian and Ubuntu based distribution
sudo apt update && sudo apt install gprename
# In Arch based distributions
sudo pacman -S gprename
# In openSUSE
sudo zypper install gprename
# In Fedora Workstation, check first. If nothing comes back, use the source install below
dnf search gprename

Which GPRename version your distro ships
The newest upstream release is 20230429, uploaded to SourceForge on 2023-04-29. Debian and Ubuntu still ship 20210415-1 while Arch Linux and openSUSE Tumbleweed carry the 20230429 code, so your menus and options can differ from a screenshot taken on another distro.
- Debian bookworm, trixie and sid: 20210415-1
- Ubuntu 22.04 and 24.04 (universe): 20210415-1
- Ubuntu 26.04 (universe): 20210415-1build1
- Arch Linux (extra): 20230429-2
- openSUSE Tumbleweed: 5.0.20230429
The 20230429 release added a CamelCase option, according to the openSUSE changelog. Debian’s package tracker lists that upstream version as waiting to be packaged. Check your own build with these commands.
# Debian-based distros
apt policy gprename
# Arch-based distros
pacman -Qi gprename
Install GPRename from source
Use the source route on Fedora or any distro without a package. GPRename needs Perl with the GTK3 bindings and gettext support. The openSUSE spec file requires perl-Gtk3 while the Debian package depends on libgtk3-perl and libglib-perl.
# Download the latest release and extract it
wget https://downloads.sourceforge.net/gprename/gprename-20230429.zip
unzip gprename-20230429.zip
# Move into the extracted folder that holds the Makefile, then install
sudo make install
Upstream’s install page still describes a tar.bz2 download and GTK2 bindings, a leftover from older releases. The current release is a zip, so the tar command step on that page will not apply. The same page documents sudo make uninstall for removal.
Once the installation is finished, we can start using it. Usage is shown below.
Using GPRename
Open the tool by searching in your Application menu, now you can see the following interface.

Now navigate to the directory whose files you want to rename using the tree structure displayed in the first pane.

As you can see, the bottom pane has a lot of options regarding renaming files. Let’s say I just want to change the case of all the characters in the files’ names. Just click on the preview button located on the bottom right, and then hit rename.

The Insert/Delete tab removes a range of characters and the Replace/Remove tab swaps one string for another. The next section covers every tab.
GPRename tabs and options explained
The bottom pane holds one tab per rename mode. A run applies the tab you have open, so pick the mode first and press Preview before you press Rename.
Case change tab
This tab sets names to all uppercase or all lowercase. It can also capitalize only the first letter or the letter after a character you define. Builds from 20230429 on add a CamelCase mode for names that contain spaces.
Insert/Delete tab
Pick this tab to insert text at a position you choose or to delete a range of characters. It suits fixed-width prefixes such as camera codes or a date stamp you want gone. Preview shows the new names before anything changes.
Replace/Remove tab
Type the string to find and the string to put in its place. Leave the second field empty to remove the text instead. Two checkboxes control case sensitivity and regular expressions, and the regex option gets its own section below.
Numerical tab
This tab numbers files from a start value with an increment you set. You can add text before and after the number and keep the old name on either side. Type the file extension in the after box.
- Start number and increment
- Text before the number
- Text after the number, including the extension
- Old name kept before or after the number
Filter the file list
Open Options and then Filter to restrict the file list. A pattern such as JPG hides every other file type, which protects the rest of a mixed folder from a rename.
Rename directories
The right pane has separate tabs for files and for directories. Switch to the directories tab to rename subfolders with the same options. For command line work on folders, see our guide to create and rename directories in Linux.
Use regular expressions in GPRename
Turn on the regex checkbox
Tick the regular expressions box on the Replace/Remove tab and the two fields behave like a substitution. A 2007 reply from the maintainer on the project mailing list compares it to a sed style s/old/new/g command. Tick case sensitive too if Report.jpg and report.jpg differ for you.
Backreferences and the rename fallback
That same thread shows the maintainer concluding that capture groups such as $1 or \1 cannot be reused in the replace field. I could not confirm whether newer releases changed this, so test with Preview before renaming. For group reuse, switch to the Perl rename command with a dry run.
rename -n 's/- (\d+)/$1 -/' *.avi
The pattern captures the digits after a dash and places them before it, so Show – 277 Pilot.avi becomes Show 277 – Pilot.avi. The -n flag only lists the planned renames. Drop it to apply them.
Shell equivalents of GPRename modes
Every GPRename mode has a shell twin. Most use the Perl rename command, which takes a substitution and an optional dry run flag. Some distros ship a different util-linux rename with another syntax, so run rename –version to see which one you have.
Perl rename recipes
Add -n to any of these for a dry run.
- Lowercase all names:
rename 'y/A-Z/a-z/' * - Replace spaces with underscores:
rename 's/ /_/g' * - Change an extension:
rename 's/\.xyz$/.abc/' * - Insert text at the start:
rename 's/^/prefix_/' * - Delete the first three characters:
rename 's/^.{3}//' *
Numbering with a bash loop
The loop below mirrors the Numerical tab. The printf call pads the counter to three digits and mv -n refuses to overwrite an existing file.
i=1
for f in *.jpg; do
mv -n -- "$f" "$(printf '%03d' "$i").jpg"
i=$((i+1))
done
Files come out as 001.jpg, 002.jpg and so on, following the order the shell lists them.
Run GPRename from the terminal
GPRename is a GUI program, but its man page documents one terminal form: the gprename command followed by a directory. Use it to start the program from a shell or a launcher script.
gprename ~/Pictures/holiday
GPRename stores two plain-text files in your home directory. ~/.gprename is the user configuration file and ~/.gprename_log is the user log, according to the man page.
The man page is dated May 2007 and still calls GPRename a GTK2-Perl program. Trust it for the command syntax and file names only.
A headless server cannot run it because the program needs a graphical session. A reply under a 2013 tutorial suggests running it from a computer with a GUI or installing a desktop on the server.
Undo a rename and check the log
GPRename gives you three buttons for a run: Preview, Rename and Undo. Press Undo when a run produces names you did not want. Linux has no built-in undo for mv or rename, so Preview stays your main safeguard.
Fix common GPRename problems
GPRename not found on Fedora
Fedora’s package index returned no gprename entry when I checked. Run the search below to confirm on your release, then use the source install steps above if it comes back empty.
dnf search gprename
Packaging gaps are not new for this tool. Debian removed gprename from testing in August 2019 and let it back in during February 2021.
Icon file error after a source install
A source install can start with an error saying GPRename failed to open an icon file under /usr/share/icons. The openSUSE spec file carries patches for icon path problems like this one.
Distros disagree on where the icon belongs. Debian ships it as /usr/share/icons/gprename.png while Arch installs a 64×64 copy under hicolor. Match the path the error names to where the file landed.
find /usr/share/icons -name 'gprename*'
Changes from two tabs do not combine
A walkthrough of GPRename notes that only the tab you have open applies to a run. To change case and replace text, rename once on one tab and then run the second tab on the new names. I did not retest this on 20230429.
GPRename alternatives
GPRename suits point-and-click jobs. For scripts or editor-style renaming, our guide to renaming multiple files in Linux walks through rename, qmv and the Thunar bulk renamer. Pick by how you work:
- rename (Perl): regex substitutions from the shell
- qmv from renameutils: edit new names in a two-column editor view
- Thunar bulk renamer: start it with
thunar -B - KRename: a KDE batch renamer that Fedora lists at version 5.0.2
- pyRenamer: reads EXIF data but was discontinued in 2008
For a fuller desktop setup around Nemo and Cinnamon, see Cinnamon Desktop: Customize Themes and Applets.
Key Takeaways
- GPRename is a Perl and GTK3 batch renamer for files and directories.
- The latest upstream release is 20230429.
- Debian and Ubuntu ship 20210415-1 while Arch ships 20230429.
- Start it from a shell with gprename and a directory.
- Pick one tab first since a run applies the open tab.
- Use Preview before Rename and Undo if names look wrong.
- Capture groups in the replace field may not work.
- Use Perl rename with -n for group reuse.
- Fedora may need the source install.
Frequently asked questions
What is GPRename in Linux?
GPRename is a GUI batch renamer written in Perl with GTK3. It changes case, inserts or deletes text, replaces strings and numbers files and directories in one run.
How do I install GPRename on Ubuntu?
Run sudo apt update && sudo apt install gprename. The package lives in Ubuntu’s universe repository and installs version 20210415-1 on both 22.04 and 24.04.
Can I run GPRename from the terminal?
You can start it with gprename followed by a directory, but it still opens a GUI window. It does not rename files in a headless shell session.
Does GPRename support regular expressions?
Yes. Tick the regular expressions box on the Replace/Remove tab and the fields work as a substitution. Capture groups in the replacement may not work, so test with Preview first.
How do I undo a rename in GPRename?
Click the Undo button beside Rename. Linux has no built-in undo for mv or rename, so run Preview before you commit any batch of changes.
Is GPRename available on Fedora?
I could not find a gprename package in Fedora’s index. Run dnf search gprename to confirm, then install the zip release from SourceForge with sudo make install.
What is the command line alternative to GPRename?
Use the Perl rename command with the -n flag for a dry run first, for example rename -n ‘s/ /_/g’ *. Install it with your package manager.
Conclusion
GPRename handles bulk renames in a GUI on Linux. Install gprename from your distro or the SourceForge zip, pick one tab, press Preview and then Rename. For regex jobs that reuse captured text, switch to the Perl rename command with the -n dry run flag.
