Вы можете сделать это, используя -T
опцию в cp
.
См. Страницу руководства для cp
.
-T, --no-target-directory
treat DEST as a normal file
Итак, согласно вашему примеру, ниже представлена файловая структура.
$ tree test
test
|-- bar
| |-- a
| `-- b
`-- foo
|-- a
`-- b
2 directories, 4 files
Вы можете увидеть явную разницу при использовании -v
для Verbose.
Когда вы используете только -R
вариант.
$ 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
Когда вы используете эту опцию, -T
он перезаписывает содержимое, обрабатывая место назначения как обычный файл, а не каталог .
$ cp -TRv foo/ bar/
`foo/b' -> `bar/b'
`foo/a' -> `bar/a'
$ tree
|-- bar
| |-- a
| `-- b
`-- foo
|-- a
`-- b
2 directories, 4 files
Это должно решить вашу проблему.