Solved

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

Posted on 2010-08-26
4
465 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
  • 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 500 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

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Setting up Secure Ubuntu server on VMware 1.      Insert the Ubuntu Server distribution CD or attach the ISO of the CD which is in the “Datastore”. Note that it is important to install the x64 edition on servers, not the X86 editions. 2.      Power on th…
Linux users are sometimes dumbfounded by the severe lack of documentation on a topic. Sometimes, the documentation is copious, but other times, you end up with some obscure "it varies depending on your distribution" over and over when searching for …
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…

762 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now