概述
cp 命令主要可用于复制文件或目录。cp 是单词 copy 的缩写。

语法
cp 命令的语法如下:cp [选项] source dest。即复制 source 文件到 dest。
该命令支持的选项有:
| 选项 | 说明 |
|---|---|
| -r | 递归复制整个文件夹 |
| -i | 若目标文件已经存在,则会询问是否覆盖 |
| -p | 保留源文件或目录的所有属性 |
| -d | 当复制符号链接时,把目标文件或目录也建立为符号链接,并指向与源文件或目录连接的原始文件或目录。如果不加上该选项,则复制的仍然是源文件而不是符号链接文件,并且对硬链接文件无效 |
| -l | 对源文件建立硬链接,而非复制文件 |
| -s | 对源文件建立符号链接,而非复制文件 |
| -b | 覆盖已存在的目标文件前将目标文件进行备份 |
| -v | 详细显示 cp 命令执行的操作过程 |
该命令的参数说明:
| 参数 | 说明 |
|---|---|
| source | 源文件或目录 |
| dest | 目标文件或目录 |
注:该命令最常用的是就算复制文件和复制文件夹功能。
使用
复制文件
所谓的复制文件,就是将一个文件复制到另外一个目录下,其中 source 表示源文件,而 dest 表示目标目录。语法如下:
# 语法
cp 源文件 目标目录
# 实例,将 test.txt 文件复制到 /root/ 目录下
cp /home/lighthouse/test.txt /root/

复制目录
通常情况下,待复制的目录都不是空文件夹,如果直接使用 cp 命令进行复制会失败,如果想要把指定目录及该目录下的子文件和子文件夹都复制过去,则需要加上 -r 选项。其中 src 是源目录;dest 表示目标目录。
# 语法
cp -r 源目录 目标目录
# 实例,将 /home/lighthouse 目录复制到 /root 下
cp -r /home/lighthouse /root/

覆盖文件
当将一个文件或目录复制到另外一个目录下时,如果该目录下已经存在同名文件或目录,那么复制操作就会询问你是否覆盖,如果想要覆盖就回答 y。但每个文件都要回答一次就会很麻烦,所以可以使用 \cp 命令。语法如下:
# 语法
\cp 源文件 目标文件
# 实例
\cp /home/lighthouse/test.txt /root/test.txt
注意,此时
source表示源文件;dest表示目标文件,而不是目录。
因为 cp 命令实际上是 cp -i 的别名,而 -i 选项表示在覆盖前询问进行询问。而 \cp 表示使用原始的 cp 命令,而不是这别名表示的命令。

当前目录下复制文件
在当前工作目录中,将某个文件复制一份,并重新定义名称,通常用来备份文件:
cp 源文件名 目标文件名
同样,也可以这样复制一个目录,但必须加上 -r 选项。
显示复制过程
可以加上 -v 选项显示 cp 命令详细的执行过程:

复制多个文件
即源文件 source 可以有多个,但目标文件必须是目录才可以。语法如下:
cp 源文件1 源文件2 源文件3 ... 目标目录

复制软链接文件
如果要复制软连接文件,则需要使用 -d 选项,否则 cp 命令复制的就算源文件本身,而不是软链接文件。只有加上 -d 选项,才会复制软链接文件。语法如下:
cp -d 软连接文件 目标目录或目标文件


复制保留源文件属性
当我们执行完复制命令后,目标文件的时间会变成复制命令的执行时间,而非源文件的时间。所以如果要复制后仍然保留源文件的属性,则需要加上 -p 选项,会保留源文件的所有属性。


建立源文件的硬链接和软链接
可以通过 -l 选项,将目标文件建立成源文件的硬链接;可以通过 -s 选项将目标文件建立成源文件的软链接。同 -d 选项不同,-d 选项要求源文件必须是软链接才能复制成软链接,这两个选项要求源文件是普通文件就可以了。
# 将目标文件建立为源文件的硬链接文件
cp -l 源文件 目标文件
# 将目标文件建立为源文件的软链接文件
cp -s 源文件 目标文件

本文详细介绍了Linux系统中`cp`命令的用法,包括复制文件、复制目录、覆盖文件、在当前目录复制、显示复制过程、复制多个文件、复制软链接文件以及保留源文件属性等操作。通过`-r`、`-i`、`-p`等选项,用户可以灵活控制复制过程。此外,还提到了如何建立源文件的硬链接和软链接。

2390

被折叠的 条评论
为什么被折叠?



