Copying Nested Directories With Ditto

You can copy nested directories with cp using the -R (recursive) flag. The way cp works is that it replaces the target location with the source directory, wiping out whatever files or directories reside at the target location.

Conversely, the ditto utility, available on OS X's version of Unix, does recursive directory copies by default and merges the contents of any existing directories.

As an example, here are two folders, folder1 and folder2:

 exa -T folder1
folder1
├── cats
  └── sneaky
└── dogs
   └── fido

 exa -T folder2
folder2
└── cats
   └── oreo

Using ditto to copy folder1 to folder2

 ditto folder1 folder2

we get a folder2 where directories from folder1 are created and existing directories are merged together.

 exa -T folder2
folder2
├── cats
  ├── oreo
  └── sneaky
└── dogs
   └── fido

See man ditto for more details.

Last updated