cp命令 – 复制文件或目录

cp命令是英文单词copy的缩写,用于将一个或多个文件/目录复制到指定位置,也常用于文件的备份工作。

注意:该命令不能用于跨主机文件复制,仅用于同一主机内的文件复制。

该命令的语法格式如下

cp [选项] 源文件 目标文件

常用选项如下所示:

选项 作用
-f 若目标文件已存在,则强行覆盖原文件
-i  若目标文件已存在,则询问是否覆盖 
-p  保留源文件/目录的所有属性 
-r  递归复制文件和目录
-d 当复制符号连接时,则目标文件也是符号连接,且与源符号链接指向相同 
-l 创建源文件的硬连接,而非复制文件 
-s 创建源文件的符号连接,而非复制文件 
-b 若目标文件已存在,则覆盖该目标文件前先将其备份
-v 详细显示cp命令执行的操作过程 
-a  等价于“pdr”选项

选项-r和-a尤为常用,需要多理解和掌握。

实例演示

1、将当前工作目录中的某个文件复制一份,并重命名该新文件

[root@myEuler ~]# cp anaconda-ks.cfg ks.cfg

#对比源目两个文件的属性信息
[root@myEuler ~]# ls -l anaconda-ks.cfg ks.cfg 
-rw-------. 1 root root 1055 Feb 24 21:29 anaconda-ks.cfg
-rw-------  1 root root 1055 Mar  7 08:11 ks.cfg

2、将某个目录复制一份,并重命名该新目录

[root@myEuler ~]# cp -r /tmp /tempfile

#对比源目两个目录的属性信息
[root@myEuler ~]# ls -ld /tmp /tempfile
drwxr-xr-t 9 root root 4096 Mar  7 08:13 /tempfile
drwxrwxrwt 9 root root  180 Mar  7 07:58 /tmp

3、复制某个文件时,保留其原始属性信息

[root@myEuler ~]# cp -a anaconda-ks.cfg newfile

#对比源目两个文件的属性信息,注意和第一个示例对比
[root@myEuler ~]# ls -l anaconda-ks.cfg newfile 
-rw-------. 1 root root 1055 Feb 19 23:31 anaconda-ks.cfg
-rw-------. 1 root root 1055 Feb 19 23:31 newfile