【Linux】cp -r 命令实验

1.命令说明 

命令:cp -r  source  dest

说明:该命令复制source  到 dest。可以单个文件复制,也可以带目录层级复制。

          source 是具体文件时,dest如果是目录,即带/ 的,则文件生成在dest目录中。如果dest是不带/的,文件换名为dest文件,内容复制过去。

          source 是具体目录时,dest如果是目录,即带/ 的,则生成在dest目录中,按层级的source下目录及文件。

总结:即源是文件,目标 指定文件则替换,未指定文件 则新建文件。

              源是路径,将在目标 中生成 源路径下的 所有目录及文件。

说明:

       -r:既复制当前目录下的文件,也复制当前目录下的文件夹。

-R:只复制当前目录下的文件,不复制当前目录下的文件夹

 2.实验

源文件:/home/sxnhtc/script/performance/test/test1/test2  有1.txt  2.txt

2.1 源是文件,目标 指定文件则替换,未指定文件 则新建文件

cp -r  ./test/test1/test2/1.txt   目标

      目标如果是路径,即带/,必须存在该路径。会复制到目标路径下 1.txt。

      目标如果 不带/,默认是文件,不存在则创建,存在则覆盖。

cp -r  ./test/test1/test2/1.txt ./ttotest    

[sxnhtc@appx-container performance]$ cp -r  ./test/test1/test2/1.txt ./ttotest
[sxnhtc@appx-container performance]$ cd ttotest
-bash: cd: ttotest: 不是目录
[sxnhtc@appx-container performance]$ cat ttotest
hello

[sxnhtc@appx-container performance]$ 
cp -r  ./test/test1/test2/1.txt ./ttotest/

[sxnhtc@appx-container performance]$ cp -r  ./test/test1/test2/1.txt ./ttotest/
cp: failed to access "./ttotest/": 不是目录
[sxnhtc@appx-container performance]$
#ttotest1 目录不存在
cp -r  ./test/test1/test2/1.txt ./ttotest1/  

[sxnhtc@appx-container performance]$ cp -r  ./test/test1/test2/1.txt ./ttotest1/
cp: 无法创建普通文件"./ttotest1/": 不是目录
[sxnhtc@appx-container performance]$
#目录 totest2、totest3 已存在时,该层目录下复制文件
cp -r ./test/test1/test2/1.txt ./totest2
cp -r ./test/test1/test2/1.txt ./totest3/

[sxnhtc@appx-container performance]$ cp -r ./test/test1/test2/1.txt ./totest2
[sxnhtc@appx-container performance]$ ll totest2
总用量 4
-rw-rw-r-- 1 sxnhtc sxnhtc  7 10月 19 12:00 1.txt
drwxrwxr-x 3 sxnhtc sxnhtc 27 10月 19 11:51 test1
[sxnhtc@appx-container performance]$ cp -r ./test/test1/test2/1.txt ./totest3/
[sxnhtc@appx-container performance]$ ll totest3
总用量 4
-rw-rw-r-- 1 sxnhtc sxnhtc  7 10月 19 12:00 1.txt
drwxrwxr-x 3 sxnhtc sxnhtc 27 10月 19 11:48 test1
[sxnhtc@appx-container performance]$

 

2.2 源是路径,将在目标 中生成 源路径下的 所有目录及文件

cp -r ./test ./totest1   或  cp -r ./test/ ./totest2   或 cp -r ./test/ ./totest3/

         #把test文件夹替换为 totest1/2/3文件夹,子目录不变,全部复制。totest1自动创建。

         结果:从     ./test/test1/test2  有1.txt  2.txt

                   到 ./totest1/test1/test2  有1.txt  2.txt

因此,如果前后都是目录的话,源和目标的层级是一样的。

cp -r ./test ./totest1

[sxnhtc@appx-container performance]$ cp -r ./test ./totest1
[sxnhtc@appx-container performance]$ cd totest1
[sxnhtc@appx-container totest1]$ ll
总用量 0
drwxrwxr-x 3 sxnhtc sxnhtc 27 10月 19 11:34 test1
[sxnhtc@appx-container totest1]$ cd test1/test2
[sxnhtc@appx-container test2]$ ll
总用量 8
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 11:34 1.txt
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 11:34 2.txt
[sxnhtc@appx-container test2]$ pwd
/home/sxnhtc/script/performance/totest1/test1/test2
[sxnhtc@appx-container test2]$
cp -r ./test/ ./totest3/

[sxnhtc@appx-container performance]$ cp -r ./test/ ./totest3/
[sxnhtc@appx-container performance]$ cd /home/sxnhtc/script/performance/totest3/test1/test2/
[sxnhtc@appx-container test2]$ ll
总用量 8
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 11:48 1.txt
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 11:48 2.txt
[sxnhtc@appx-container test2]$
cp -r ./test/ ./totest2

[sxnhtc@appx-container performance]$ cp -r ./test/ ./totest2
[sxnhtc@appx-container performance]$ cd totest2/test1/test2
[sxnhtc@appx-container test2]$ ll
总用量 8
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 11:51 1.txt
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 11:51 2.txt
[sxnhtc@appx-container test2]$

总结:其实cp指定文件时,-r 不用写,也可以创建。

          -r 或-R只针对 源是目录时,是否拷贝带层级或直接文件。

cp   ./test/test1/test2/2.txt ./totest2/

[sxnhtc@appx-container performance]$ cp   ./test/test1/test2/2.txt ./totest2/
[sxnhtc@appx-container performance]$ ll totest2
总用量 8
-rw-rw-r-- 1 sxnhtc sxnhtc  7 10月 19 12:00 1.txt
-rw-rw-r-- 1 sxnhtc sxnhtc  7 10月 19 12:24 2.txt
drwxrwxr-x 3 sxnhtc sxnhtc 27 10月 19 11:51 test1
[sxnhtc@appx-container performance]$
#totestbb 不存在,-R将具体文件 直接复制到totestbb文件中,没有层级
cp -R  ./test/test1/test2/  ./totestbb/

[sxnhtc@appx-container performance]$  cp -R  ./test/test1/test2/  ./totestbb/
[sxnhtc@appx-container performance]$ ll totestbb
总用量 8
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 12:35 1.txt
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 12:35 2.txt
[sxnhtc@appx-container performance]$
#totestcc不存在,会将test1/test2目录及文件,复制到totestcc中
cp -R  ./test/  ./totestcc/

[sxnhtc@appx-container performance]$  cp -R  ./test/  ./totestcc/
[sxnhtc@appx-container performance]$ cd totestcc
[sxnhtc@appx-container totestcc]$ ll
总用量 0
drwxrwxr-x 3 sxnhtc sxnhtc 27 10月 19 12:40 test1
[sxnhtc@appx-container totestcc]$ cd test1/test2
[sxnhtc@appx-container test2]$ ll
总用量 8
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 12:40 1.txt
-rw-rw-r-- 1 sxnhtc sxnhtc 7 10月 19 12:40 2.txt
[sxnhtc@appx-container test2]$

 


 Oracle其他文档,希望互相学习,共同进步

Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-****博客

oracle 跟踪文件--审计日志_oracle审计日志-****博客

ORA-12899报错,遇到数据表某字段长度奇怪现象:“Oracle字符型,长度50”但length查却没有50_varchar(50) oracle 超出截断-****博客

EXP-00091: Exporting questionable statistics.解决方案-****博客


 项目管理--相关知识   

项目管理-项目绩效域1/2-****博客

项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-****博客

项目管理-项目绩效域2/2_绩效域 团不策划-****博客

高项-案例分析万能答案(作业分享)-****博客

项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-****博客

项目管理-配置管理与变更-****博客

项目管理-项目管理科学基础-****博客

项目管理-高级项目管理-****博客

上一篇:CUDA-归一化算法


下一篇:GIT + Gerrit + SourceTree