In Linux, file names are case-sensitive, so you might face situations where you want to change file names to lowercase. In general, it’s easier to work with files on the Linux command line that are entirely lowercase. In this tutorial, you will learn how to change file names to lowercase with Linux commands.
mv Command
You can use the mv
command not only for moving directories and files but also for altering file names.
Example 1. The for
loop below will change file names to lowercase for all files in the current directory by using mv
and tr
.
$ for f in * ; do mv $f $(echo $f | tr A-Z a-z); done
Example 2. The awk
command also has a built in tolower
function that we can use.
$ for f in * ; do mv $f `echo $f | awk '{print tolower($0)}'`; done
rename Command
Installing rename
:
$ sudo apt install rename # Ubuntu, Debian $ sudo dnf install prename # Fedora, CentOS, AlmaLinux, Rocky $ sudo pacman -S perl-rename # Arch Linux, Manjaro
Example 1. Use the rename
command to change an individual file to lowercase.
$ rename 'y/A-Z/a-z/' file_name
Example 2. To make all file names lowercase, we can use a wildcard. Keep in mind that directories will also change to lowercase.
$ rename 'y/A-Z/a-z/' *
mmv Command
Installing mmv
:
$ sudo apt install mmv # Ubuntu, Debian $ sudo dnf install mmv # Fedora, CentOS, AlmaLinux, Rocky
mmv
has the shortest command syntax to change all file names to lowercase:
$ mmv '*' '#l1'