Você pode fazer isso usando a -T
opção em cp
.
Consulte a página do manual para cp
.
-T, --no-target-directory
treat DEST as a normal file
Portanto, de acordo com seu exemplo, a seguir está a estrutura do arquivo.
$ tree test
test
|-- bar
| |-- a
| `-- b
`-- foo
|-- a
`-- b
2 directories, 4 files
Você pode ver a diferença clara quando você usa -v
para Verbose.
Quando você usa apenas a -R
opção.
$ 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
Quando você usa a opção, -T
ela sobrescreve o conteúdo, tratando o destino como um arquivo normal e não como um diretório .
$ cp -TRv foo/ bar/
`foo/b' -> `bar/b'
`foo/a' -> `bar/a'
$ tree
|-- bar
| |-- a
| `-- b
`-- foo
|-- a
`-- b
2 directories, 4 files
Isso deve resolver seu problema.