?
Solved

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

Posted on 2010-08-26
4
Medium Priority
?
473 Views
Last Modified: 2013-12-16
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!

0
Comment
Question by:b1xx1b
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 40

Expert Comment

by:omarfarid
ID: 33533962
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
 

Author Comment

by:b1xx1b
ID: 33534081
I am an noob on linux, how would i execute that script?

0
 
LVL 40

Accepted Solution

by:
omarfarid earned 2000 total points
ID: 33534123
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
 
LVL 8

Expert Comment

by:point_pleasant
ID: 33534209
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

Featured Post

Will your db performance match your db growth?

In Percona’s white paper “Performance at Scale: Keeping Your Database on Its Toes,” we take a high-level approach to what you need to think about when planning for database scalability.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Little introduction about CP: CP is a command on linux that use to copy files and folder from one location to another location. Example usage of CP as follow: cp /myfoder /pathto/destination/folder/ cp abc.tar.gz /pathto/destination/folder/ab…
In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
Suggested Courses
Course of the Month13 days, 8 hours left to enroll

800 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question