cp files from mulitple directories into one directory LINUX (and rename files too)

Hi--

I have a situation where i need to copy many files from many different subdirectories into another directory.
I am using the code below, BUT it overwrites files with the same name (obviously).

What would be a good work around so that I can rename the files something unique while copying them?

find <start directory>  -iname "*.html" -exec cp {} <target Directory> \;

Thanks!

b1xx1bAsked:
Who is Participating?
 
omarfaridConnect With a Mentor Commented:
put in file using editor like vi or as below

echo 'n=0
find <start directory>  -iname "*.html" | while read file
do
    tfile=`basename $file`
    cp $file  dir/$tfile.$n
    n=`expr $n + 1`
done' > myscript

chmod +x myscipt

- run the script

./myscript
0
 
omarfaridCommented:
try something like this

n=0
find <start directory>  -iname "*.html" | while read file
do
    tfile=`basename $file`
    cp $file  dir/$tfile.$n
    n=`expr $n + 1`
done
0
 
b1xx1bAuthor Commented:
I am an noob on linux, how would i execute that script?

0
 
point_pleasantCommented:
The following shell script should do the trick.  supposed the script is named 'my_move'  it would be invoked as follows "my_move <directory to look in> <directory to copy to>.   this particular script adds the date to the end of the file name so home.html would be renamed to home.html.082610 and then copied to the directory specified in $2, the second command line arguement.  Hope this helps.


Mike

m_date=`date +%m%d%y`
for i in `find $1 -print`
do
        rename .html .html.$m_date $i
        cp $i.$m_date $2
done
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.