5

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 :)

user82286
  • 166
John Hunt
  • 848

2 Answers2

10

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.

cuonglm
  • 153,898
  • I just tested it, although it might not replace the directory itself it does indeed work in the same manner as replacing the directory. Thanks :) – John Hunt Sep 01 '14 at 13:11
1

Asterisk does the thing ;)

cp -a test/a/* a
beginer
  • 2,708