test1 

批量复制,目标文件夹ggggg-zyx0809/data/tmp/a0文件夹已存在,不使用flat命令,目标路径包含a0文件夹

操作 从ggggg-zyx0809/data/g_cagegory/a0复制到ggggg-zyx0809/data/tmp/a0

条件 ggggg-zyx0809/data/tmp/a0文件夹已存在,

结果 在ggggg-zyx0809/data/tmp/a0又生成一个文件夹a0

命令  ./obsutil cp obs://ggggg-zyx0809/data/g_cagegory/a0 obs://ggggg-zyx0809/data/tmp/a0  -f -r

test2 

批量复制,目标文件夹ggggg-zyx0809/data/tmp/a0文件夹已存在,不使用flat命令,目标路径不包含a0文件夹

操作 从ggggg-zyx0809/data/g_cagegory/a0复制到ggggg-zyx0809/data/tmp/

条件 ggggg-zyx0809/data/tmp/a0文件夹已存在,

结果 在ggggg-zyx0809/data/tmp/不会重新生成文件夹a0,复制过来的数据直接存放到a0文件夹中

命令  ./obsutil cp obs://ggggg-zyx0809/data/g_cagegory/a0 obs://ggggg-zyx0809/data/tmp/  -f -r

test3 

批量复制,ggggg-zyx0809/data/tmp/a0文件夹已存在,使用flat参数,目标路径包含a0文件夹

操作 从ggggg-zyx0809/data/g_cagegory/a0复制到ggggg-zyx0809/data/tmp/a0,增加flat参数

条件 ggggg-zyx0809/data/tmp/a0文件夹已存在,

结果 在ggggg-zyx0809/data/tmp/a0中不会新生成文件夹a0,复制过来的数据直接存放到a0文件夹中

 命令  ./obsutil cp obs://ggggg-zyx0809/data/g_cagegory/a0 obs://ggggg-zyx0809/data/tmp/a0  -f -r -flat

结论:

      通过test2和test3的实验我们发现,目标文件夹存在的情况下,复制不重复创建的文件夹的两种方式

  1. 目标路径不带目标文件夹,不使用flat参数

  2. 目标路径带目标文件夹,使用flat参数

    综合对比,目标文件夹存在的情况下,复制不重复创建的文件夹最好的方式就是方法1(因为代码量少^_^)

参考:https://support.huaweicloud.com/utiltg-obs/obs_11_0017.html

作者:华为云MVP郑永祥

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐