Rename multiple files based on pattern in Unix

batch-rename, file, rename, unix

Solution

There are several ways, but using `rename` will probably be the easiest.

Using one version of `rename` (Perl's `rename`):

rename 's/^fgh/jkl/' fgh*

Using another version of `rename` (same as Judy2K's answer):

rename fgh jkl fgh*

You should check your platform's man page to see which of the above applies.

Problem

There are multiple files in a directory that begin with prefix `fgh`, for example: ``` fghfilea fghfileb fghfilec ``` I want to rename all of them to begin with prefix `jkl`. Is there a single command to do that instead of renaming each file individually?

Original source

Related problems