Renaming files in multiple directories

Hi

I have the following file structure and I want to rename all the abc.jar files to abc_backup.jar

rock@server:~/rakesh> ls -R
.:
test1  test2  test3

./test1:
abc.jar

./test2:
abc.jar

./test3:
abc.jar

can anyone help with suggestion ?

ls -R
.:
test1  test2  test3

./test1:
abc.jar

./test2:
abc.jar

./test3:
abc.jar

for f in $(find . -name 'abc.jar' -type f);do mv -vv $f ${f/.jar/_backup.jar};done
'./test1/abc.jar' -> './test1/abc_backup.jar'
'./test3/abc.jar' -> './test3/abc_backup.jar'
'./test2/abc.jar' -> './test2/abc_backup.jar'
1 Like

The for-loop is unnecessary. Just use find's -exec.

Regards,
Alister

1 Like