您可以使用cp中的-T选项执行此操作.
请参阅手册页以获取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 for 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
这应该可以解决您的问题.