Puede hacer esto usando la -T
opción en cp
.
Consulte la página Man para cp
.
-T, --no-target-directory
treat DEST as a normal file
Entonces, según su ejemplo, la siguiente es la estructura del archivo.
$ tree test
test
|-- bar
| |-- a
| `-- b
`-- foo
|-- a
`-- b
2 directories, 4 files
Puede ver la clara diferencia cuando lo usa -v
para Verbose.
Cuando usa solo -R
option.
$ cp -Rv foo/ bar/
`foo/' -> `bar/foo'
`foo/b' -> `bar/foo/b'
`foo/a' -> `bar/foo/a'
$ tree
|-- bar
| |-- a
| |-- b
| `-- foo
| |-- a
| `-- b
`-- foo
|-- a
`-- b
3 directories, 6 files
Cuando usa la opción -T
, sobrescribe el contenido, tratando el destino como un archivo normal y no como un directorio .
$ cp -TRv foo/ bar/
`foo/b' -> `bar/b'
`foo/a' -> `bar/a'
$ tree
|-- bar
| |-- a
| `-- b
`-- foo
|-- a
`-- b
2 directories, 4 files
Esto debería solucionar tu problema.