Using cp to replace a directory of the same name

cp

How can I make cp replace a directory of the same name without removing the existing directory first? cp's default behaviour is to copy the source directory into the destination rather than replace it:

mkdir -p test/a
mkdir a
cp -a test/a a

a is now within a, it didn't replace a. How can I make cp replace directories? I want it to work the same way it does with files.

I could of course delete the target first, but I don't want to have to run more than one command 🙂

Best Answer

Use a dot . after a:

cp -a test/a/. a

It actually does not replace a as you though. It just copy test/a content to directory a.

Related Question