Table of Contents

BASH - Files - Rename files which contain the old sub-string, replacing it with the replacement sub-string

Rename all files which contain the old sub-string, replacing it with the replacement sub-string.

rename old_value replacement_value directory/filename

Rename all files which contain the sub-string 'foo', replacing it with 'bar'

for i in ./*foo*;do mv -- "$i" "${i//foo/bar}";done

Using perl

rename 's/ /-/g' *

As long as you have perl based rename.

You can check:

rename --help

or

rename [-v] [-n] [-f] perlexpr [filenames]