cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。
全称
cp: copy
格式
|
|
常用选项
-b : 若目标文件已经存在,则覆盖前先备份。
-f : 如果目标文件已经存在,不询问而直接覆盖。
-i : 如果目标文件已经存在,询问是否覆盖。
-l : 对原文件建立硬链接,而非复制文件。
-p : 保留源文件或目录的属性,包括所有者、所属组、权限与时间。
-R,-r : 递归复制目录和目录内的所有文档。
-u : 如果目标文件已经存在,且源文件比目标文件新时才会覆盖。
-n : 不覆盖已经存在的文件。
-S : 指定备份文件的结尾标志。
-t : 指定文件复制目标目录,一般用于一次性复制多个文件时。
-v : 输出复制过程信息。
–help : 显示帮助信息。
示例
复制文件:
- 生成文件副本
|
|
- 复制文件时保留源文件属性
|
|
*注意:*没有指定选项-p
时复制过去的文件file1.log
和源文件的时间是不同的,而添加了参数-p
后复制过去的文件file2.log
的时间和源文件是一样的。
- 目标文件存在时,复制过程中进行交互操作
|
|
*注意:*当目标目录下存在同名文件时,cp
命令默认会直接将已存在的文件覆盖掉。如果指定选项-i
,则会给出交互提示信息,然后输入y
将覆盖目标文件,n
将放弃覆盖操作。
- 一次复制多个文件
|
|
*注意:*一次拷贝多个文件有两种实现方式。一种是最后一个参数给出目标目录,前边的参数依次给出需要复制的文件。第二种方式是使用选项-t
来指定目标目录,后边依次给出需要复制的文件。
- 复制文件时,如果目标文件存在,则先进行备份。
|
|
*注意:*选项-b
会在覆盖目标文件前进行备份。默认的备份文件围尾标为~
,可以通过选项-S
进行指定。
复制目录
|
|
*注意:*复制目录时必须指定选项-r
,要不然会提示错误cp: omitting directory 'dir1'
。在上述示例中,当目标目录dir2
不存在时,执行cp命令会生成一个新的dir2
目录,但是当再次执行相同目录时,则会在dir2
目录中生成一个新的dir1
子目录。