Linux.com

Home Linux Community Forums Software Command Line rename a range of files using one-line command

rename a range of files using one-line command

Link to this post 16 Aug 09

Hi, all

I have a range of files in a certain dir, like this,

$ touch file[123456]
$ ls
file1 file2 file3 file4 file5 file6

now, how could rename them, and add a prefix to each file? for example, add a 'pre-' prefix, as following,

pre-file1
pre-file2
pre-file3
...
pre-file6

Thanks in advance. :cheer:

Regards,
gavin

Link to this post 16 Aug 09

for files in filename* ; do new="prefix_$files" ; echo "$files $new" ; done

you don't even need the new="prefix_files";

you can
for files in filename* ; do mv $files pre_$files ; done

and make it even shorter

root@msu:~/haha# for files in haha* ; do new="prefix_$files" ; echo "$files $new" ; done
haha1 prefix_haha1
haha2 prefix_haha2
haha3 prefix_haha3
haha4 prefix_haha4
haha5 prefix_haha5
haha6 prefix_haha6
haha7 prefix_haha7

Link to this post 24 Aug 09

thanks for ur reply, :laugh: i now find another two solutions as follows,

solution1:

ls  | xargs -I{} mv {} pre_{}

solution2:

rename '' pre- *

Link to this post 25 Aug 09

i would like to help you but not here this is my mail mtalamu8@hotmail.com

Link to this post 26 Aug 09

rename file pre-file *

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board