Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

unix cp command

Posted on 2011-09-20
13
Medium Priority
?
672 Views
Last Modified: 2012-06-22
could I use the cp command to copy recursively a directory to another directory, and over-write what is in the destination directory, so something like

cp -R /source /destination

0
Comment
Question by:JeffBeall
  • 5
  • 4
  • 2
  • +2
13 Comments
 
LVL 21

Expert Comment

by:Papertrip
ID: 36570854
If you want to copy the contents of /source, then just add a * at the end
cp -R /source/* /destination

Open in new window

Without it, the /source directory will be copied into /destination as a subdirectory of it.
0
 
LVL 16

Expert Comment

by:Joseph Gan
ID: 36570865
Also can add "-p" to preserve ownerid, group id and permission etc.
0
 
LVL 1

Author Comment

by:JeffBeall
ID: 36570868
so i don't need to do anything special to over write the destination?
i ask because i already ran

cp -R /source /destination

a little while ago
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 21

Expert Comment

by:Papertrip
ID: 36570879
No you don't need anything special.

If you ran that command exactly how you typed it, then you will end up with '/destination/source/'
0
 
LVL 16

Accepted Solution

by:
Joseph Gan earned 500 total points
ID: 36570888
Correct, it will over write everythings in destination directory without asking.
0
 
LVL 1

Author Comment

by:JeffBeall
ID: 36570889
ok, i'll try it.
0
 
LVL 3

Assisted Solution

by:RitBit
RitBit earned 500 total points
ID: 36572990
To force overwriting and keep permissions for a recursive copy try this:

cp -Rpf <SOURCE>  <DESTINATION>

R -> Recursive
p -> keep permissions
f -> force overwrite all
0
 
LVL 19

Assisted Solution

by:xterm
xterm earned 500 total points
ID: 36574274
No iteration of cp will "merge" the two recursively - the source will always end up inside the destination directory, and I don't think that is what you want.

If you would like the entire contents of foo/*/* to end up IN bar/*/* then do this:

(cd /foo && tar cpf - . ) | (cd /bar && tar xvfp -)
0
 
LVL 1

Author Comment

by:JeffBeall
ID: 36574688
i don't really need to merge directories. overwriting in this case is fine, so will RitBit's solution work?
0
 
LVL 21

Expert Comment

by:Papertrip
ID: 36574724
The first answer I gave is sufficient for what you said you need to do, did you try it?
0
 
LVL 1

Author Comment

by:JeffBeall
ID: 36575683
i did try it, but everything from the source directory ended up not in the destination directory that i wanted, and i ran out of space on my external drive. so in my setup i did this

cp -R /DELTAR /t4mbu

however, maybe i should have done

cp -R /DELTAR /t4mbu/DELTAR

since i ran out of disk space , i thought maybe the command doesn't over right the destination, of course now that i think of it, it didn't have anything to over right, since all the files were in
/t4mbu/DELTAR and not /t4mbu
0
 
LVL 21

Assisted Solution

by:Papertrip
Papertrip earned 500 total points
ID: 36575717
cp -R /DELTAR /t4mbu
since all the files were in/t4mbu/DELTAR and not /t4mbu

If you followed my instructions, then the contents of /DELTAR would be under /t4mbu, instead of /t4mbu/DELTAR


If you want to copy the contents of /source, then just add a * at the end
cp -R /source/* /destination

Open in new window

Without it, the /source directory will be copied into /destination as a subdirectory of it.
0
 
LVL 1

Author Closing Comment

by:JeffBeall
ID: 36587159
thanks for the help.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

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

I have written articles previously comparing SARDU and YUMI.  I also included a couple of lines about Easy2boot (easy2boot.com).  I have now been using, and enjoying easy2boot as my sole multiboot utility for some years and realize that it deserves …
This article will show you step-by-step instructions to build your own NTP CentOS server.  The network diagram shows the best practice to setup the NTP server farm for redundancy.  This article also serves as your NTP server documentation.
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.
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial
Suggested Courses
Course of the Month8 days, 12 hours left to enroll

877 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