假设现有一个 source 文件夹:
source
sub
a.jpg
b.jpg
c.jpg
目标文件夹「不存在」的情况
$ cp -r source target
$ cp -r source/ target
$ cp -r source/ target/
▲ 结果:「source = target」以上三句话一样,都是创建一个 source 的同级克隆,只不过名字不同:
target
……
source
……
$ cp -r source/* target
▲ 结果:「命令错误」
目标文件夹「已存在」且为空
$ cp -r source target
▲ 结果:「source ≠ target」无论是否有内容,都在 target 目录下存放 source 目录:
source
……
target
source
……
$ cp -r source/ target
$ cp -r source/ target/
$ cp -r source/* target
$ cp -r source/* target/
▲ 结果:「source = target」以上几句话一样,会正确的把 source 下的内容拷贝到 target 下
target
……
source
……
目标文件夹「已存在」且不为空,且无同名文件
$ cp -r source target
$ cp -r source target/
▲ 结果:「source ≠ target」无论是否有内容,都在 target 目录下存放 source 目录:
source
……
target
source
……
$ cp -r source/ target
$ cp -r source/ target/
$ cp -r source/* target
$ cp -r source/* target/
▲ 结果:「target ∋ source」会把 source 下的内容全部拷贝到 targe 之中
source
……
target
……
……
目标文件夹「已存在」且有冲突文件
▲结果:「默认覆盖有冲突的目标文件」无论怎么拷贝都默认覆盖