cp命令用来拷贝文件或者文件夹。是Linux系统中最经常使用的命令之中的一个。普通情况下。shell会设置一个别名。在命令行下拷贝文件时,假设目标文件已经存在。就会询问是否覆盖。无论你是否使用-i參数。可是假设是在shell脚本中运行cp时,没有-i參数是不会询问是否覆盖。这说明命令行和shell脚本的运行方式有些不同。
1.命令格式:
cp [选项]... 源... 目标文件夹
2.命令功能:
将源文件复制至目标文件,或将多个源文件复制至目标文件夹。
3. 命令參数:
-a, --archive 为每一个已存在的目标文件创建备份
-b 类似--backup 但不接受參数
-d --no-dereference --preserve=links
-f, --force 假设目标文件无法打开则将其移除并重试(当-n选项存在时则不需再选此项)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 尾随源文件里的命令行符号链接
-l, --link 链接文件而不复制
-L, --dereference 总是尾随符号链接
-n, --no-clobber 不要覆盖已存在的文件(使前面的-i选项失效)
-P, --no-dereference 不尾随源文件里的符号链接
-p --preserve=模式,全部权,时间戳
-R, -r, --recursive 拷贝文件夹及文件夹内的全部项目
4. 命令实例:
实例一: 复制单个文件到目标文件夹, 文件在目标文件夹中不存在
命令: cp log.log test5
目标文件存在时, 会询问是否覆盖
实例二: 复制整个文件夹
命令: cp -a test3 test5
注意: 目标文件夹存在与否结果是不一样的, 目标文件夹存在时,整个源文件夹被拷贝到目标文件夹里面
实例三: 建立链接档
命令: cp -s log.log log_link.log
[root@localhost test]# cp -s log.log log_link.log [root@localhost test]# ll lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -> log.log