Linux命令学习总结:cp命令
命令简介:
cp命令用来复制文件或目录。指令英文原义:copy,copy files and directories
指令所在路径:/bin/cp
命令语法:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
命令参数:
参数 | 长参数 | 描述 |
---|---|---|
-a | 等同于-dR | |
-d | 复制符号链接 | |
-f | – -force | 强制复制 |
-i | 交互式模式。覆盖目标文件之前先要进行询问 | |
-n | 不覆盖 | |
-r/-R | 处理指定目录以及子目录 | |
-v | – -verbose | 显示命令执行的详细信息 |
– -help | 显示命令在线帮助 | |
– -version | 显示命令版本信息 |
使用示例:
1. 选项-in 和 -ni 的区别
cp -in /app/001.log /app/file.log
该命令,当file.log存在时,不会覆盖file.log,即file.log不会做任何的变化,且不会有任何提示信息;file.log不存在时,会创建file.log,并用001.log的内容进行填充。
cp -ni /app/001.log /app/file.log
该命令,当file.log存在时,会提示覆盖file.log,如果选择yes,就会覆盖文件的内容;file.log不存在时,会创建file.log,并用001.log的内容进行填充。
总结:-i 和 -n选项放在一起的时候,后面的选项会覆盖前面的选项。
2. cp的几种使用情况总结
(1) SOURCE为文件,DEST不存在的话,创建DEST文件,复制SOURCE的内容过去,此时新创建的DEST文件的所有者是源。
几种情况:
命令 | 描述 |
---|---|
cp /appa/a.txt /appb/b.txt | b.txt 不存在,创建b.txt文件 |
cp /appa/a.txt /appb/b.sh | b.sh 不存在,创建b.sh文件 |
cp /appa/a.txt /appb/abc | abc不存在,创建abc文件,注意abc是文件 |
(2) 目标文件存在,overwrite,覆盖是内容覆盖,目标文件的所有者和后缀等一些文件元数据不变,cp后的文件的名称为目标文件的名称,注意数据丢失风险,建议用-i选项
cp -i a.txt b.txt
cp -i a.txt bb.sh
(3) 目标文件存在且为目录,在DEST目录下新建与原文件同名的文件,并将源文件中内容填充至新文件中
cp /appa/a.txt /appb/abc
abc此时存在且为目录
(4) 源文件为多个文件,目标文件存在且为目录,在目标文件夹下新建与原
文件同名的文件,并将原文件内容复制进新文件中,在此不再举例
(5) 源文件为目录,目标文件不存在,此时,创建指定DEST同名目录,复制SRC目录中所有文件至DEST下,举例如下:
创建/testdir/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
答案:cp -a /root /testdir/rootdir
注意:rootdir这个目录不存在,而testdir存在
(6) 源文件为目录,目标文件存在且为目录,在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中,举例:
/testdir/rootdir目录存在,复制/app/test目录本身到rootdir目录内
答案: cp -a /app/test /testdir/rootdir
(7) 源文件为目录,目标文件存在且为目录,且下面是有文件的,如何把源文件夹下面的文件拷贝到目标文件夹下面?举例:
/testdir/rootdir目录存在,且下面有文件和文件夹,复制/app/test目录下面的内容到rootdir目录内
答案: cp -a /app/test/* /testdir/rootdir
原创文章,作者:woking,如若转载,请注明出处:http://www.178linux.com/82535