vick Julius wrote: > I have several directories (around 10) named ABC, DEF, GHI,... > Each directory contains more than 50 files named, for example, 1.jpg, 2.jpg, > 3.jpg,...50.jpg > These names are the same in each directory (this is what digital cameras do, > they give the same names...) > My problem is: I want to put all these files in the same directory, for > example, Photos, with the following names: > 1ABC.jpg, 2ABC.jpg, ...50ABC.jpg, 1DEF.jpg, 2DEF.jpg...50DEF.jpg,... > each image filename (such as 1.jpg) will be split and to insert the name of > the directory (such as ABC..) after the first part of the name and finally > append the extension (.jpg) to the filename. Two examples: for dir in ABC DEF GHI ; do for file in `(cd "$dir" && echo *.jpg)` ; do mv "$dir/$file" "Photos/${file%%.jpg}$dir.jpg" done done find . -type f | sed 's!^\./\(.*\)/\(.*\)\.jpg$!mv \1/\2.jpg Photos/\2\1.jpg!' | sh If any of the filenames contain spaces, it gets more complex. -- Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx> - : send the line "unsubscribe linux-admin" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html