命令格式:
# cp [-adfilprsu] 来源文件(source) 目标文件(destination) # cp [options] source1 source2 source3 .... directory
选项与参数:
选项与参数: -a :相当于 -dpr 的意思,至于 -pdr 请参考下列说明;(常用) -d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身; -f :为强制(force)的意思,若目标档案已经存在且无法开启,则移除后再尝试一次; -i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l :进行硬式连结(hard link)的连结档建立,而非复制档案本身; -p :连同档案的属性一起复制过去,而非使用默认属性(备份常用); -r :递归持续复制,用于目录的复制行为;(常用) -s :复制成为符号链接文件(symbolic link),亦即 档案; -u :若destination 比 source 旧才更新 destination ! 最后需要注意的,如果来源文件有两个以上,则最后一个目标文件一定要是『目录』才行!
那么cp -a 和cp -r 到底有什么区别呢。
linux中“cp-a”和“cp-r”的区别是:“cp-a”命令复制的数据会保留元数据的时间戳和文件属性等信息,相当于 选项组合-dpr 的意思,而“cp-r”命令复制的数据会使用新的时间戳等信息。
复制链接文件属性而非档案本身:例如是软链接的话,复制的是软链接的属性(时间戳等信息),而不是实际文档的
比如:
简单总结下:
使用cp -a 相当于将原数据原封不动的拷贝过来,不改变里面的任何信息
使用cp -r 拷贝数据,拷贝的结果是生成新的时间戳等信息