cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录
【语法格式】
cp [option] [source] [dest]
cp [选项] [源文件] [目标文件]
【选项说明】
参数选项 | 解释说明(带*的为重点) |
---|---|
-p | 复制文件时保持文件的所有者、权限信息及时间属性 |
-d | 如果复制的源文件是符号链接,那么仅复制符号链接本身,而且保留符号链接所指向的目标文件或目录 |
-r | 递归复制目录,即复制目录下的所有层级的子目录及文件 |
-a | 等同于上面的p、d、r 这3个选项功能的总和 <font color=#0099f6>*</font> |
-i | 覆盖已有文件前提示用户确认 |
-t | 默认情况下命令格式是“cp 源文件 目标文件”,使用-t参数可以颠倒顺序,格式变为“cp -t 目标文件 源文件” |
1.基础范例
可以发现使用 -a 参数复制时,文件的时间属性没有改变,-a的参数功能包含-p参数保持文件属性的功能。
[root@tianakong test]# cp -i file1.txt file5.txt # <==使用-i参数复制文件,会提示是否覆盖文件
cp: overwrite `file5.txt‘?
[root@tianakong test]# cp file1.txt file5.txt #<== 不使用 -i 参数一样的结果,为什么呢?
cp: overwrite `file5.txt‘?
[root@tianakong test]# alias cp #<==原因是系统为cp命令默认设置了别名
alias cp=‘cp -i‘
CentOS 系统默认为cp命令设置了别名,即增加了-i的参数。但是在Shell脚本中执行cp时,若没有-i参数,则并不会询问是否覆盖。这是因为命令行和Shell脚本执行时的环境变量不同,不过在脚本中一般使用命令的全路径。
原文:http://blog.51cto.com/14142782/2334293