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_绩效域 团不策划-****博客
高项-案例分析万能答案(作业分享)-****博客
项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-****博客
项目管理-配置管理与变更-****博客
项目管理-项目管理科学基础-****博客
项目管理-高级项目管理-****博客