Bạn có thể làm điều này bằng cách sử dụng -T
tùy chọn trong cp
.
Xem trang Man cho cp
.
-T, --no-target-directory
treat DEST as a normal file
Vì vậy, theo ví dụ của bạn, sau đây là cấu trúc tệp.
$ tree test
test
|-- bar
| |-- a
| `-- b
`-- foo
|-- a
`-- b
2 directories, 4 files
Bạn có thể thấy sự khác biệt rõ ràng khi bạn sử dụng -v
cho Verbose.
Khi bạn chỉ sử dụng -R
tùy chọn.
$ 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
Khi bạn sử dụng tùy chọn, -T
nó sẽ ghi đè nội dung, coi đích như một tệp bình thường chứ không phải thư mục .
$ cp -TRv foo/ bar/
`foo/b' -> `bar/b'
`foo/a' -> `bar/a'
$ tree
|-- bar
| |-- a
| `-- b
`-- foo
|-- a
`-- b
2 directories, 4 files
Điều này sẽ giải quyết vấn đề của bạn.