深究cp拷贝文件夹时`/`的用法

假设现有一个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
    ......
    ......

目标文件夹「已存在」且有冲突文件

▲结果:「默认覆盖有冲突的目标文件」无论怎么拷贝都默认覆盖
    原文作者:SolomonXie
    原文地址: https://segmentfault.com/a/1190000018030130
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞