Linux复制文件和目录(cp)

Linux复制文件和目录(cp)教程

Linux 中,cp 命令用于将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。

cp 命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

Linux cp命令详解

功能

用于拷贝目录或文件。

语法

cp [options] source dest

参数

参数 描述
options cp 命令的选项。
source 源文件或目录。
dest 目标文件或目录。

常用参数

参数 描述
-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于 dpR 参数组合。
-d 复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-f 覆盖已经存在的目标文件而不给出提示。
-i 与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 “y” 时目标文件将被覆盖。
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l 不复制文件,只是生成链接文件。

说明

默认情况下,cp 命令不能复制目录,如果要复制目录,则必须使用 -r 选项,当 “源文件” 为多个文件时,要求 “目标文件” 为指定的目录。

Linux cp命令常用实例

实例

实例 描述
cp srcFile destFile 复制文件
cp -f srcFile destFile 复制文件,直接覆盖
cp -r srcDir destDir 复制目录
cp -rf srcDir destDir 复制目录,直接覆盖

说明

使用 -r 选项,复制目录,使用 -f 选项,文件存在时,直接替换。

复制文件

语法

cp srcFile destFile

案例

我们首先,使用 touch 命令,在 /tmp 目录下创建一个文件,具体命令如下:

touch /tmp/haicoder.txt

运行后,终端输出如下:

93_Linux拷贝文件或目录cp命令.png

现在,我们使用 cp 命令,将 /tmp 目录下的文件拷贝到 /home 目录,具体命令如下:

cp /tmp/haicoder.txt /home

运行后,终端输出如下:

94_Linux拷贝文件或目录cp命令.png

现在,我们使用 ls 命令,查看我们拷贝后的文件,具体命令所下所示:

ls -l /home/haicoder.txt

运行后,终端输出如下:

95_Linux拷贝文件或目录cp命令.png

我们看到,我们已经拷贝了文件,现在,我们再次执行 cp 命令,再拷贝一次,具体命令如下:

cp /tmp/haicoder.txt /home

运行后,终端输出如下:

96_Linux拷贝文件或目录cp命令.png

这次,我们再次使用 cp 拷贝文件,目标文件已经存在,提水我们是否需要覆盖,我们输入 y,进行覆盖,如下图所示:

97_Linux拷贝文件或目录cp命令.png

输入 y 之后,我们就完成了拷贝,同时,我们还可以直接使用 -f 参数,强制覆盖,具体命令如下:

cp -f /tmp/haicoder.txt /home

运行后,终端输出如下:

98_Linux拷贝文件或目录cp命令.png

我们看到,此时不再提示了。

复制目录

语法

cp -r srcFile destFile

案例

我们首先,使用 mkdir 命令,在 /tmp 目录下创建一个目录,具体命令如下:

mkdir /tmp/haicoder

运行后,终端输出如下:

99_Linux拷贝文件或目录cp命令.png

现在,我们使用 cp 命令,将 /tmp 目录下的目录拷贝到 /home 目录下,具体命令如下:

cp /tmp/haicoder /home

运行后,终端输出如下:

100_Linux拷贝文件或目录cp命令.png

我们看到,此时,命令报错了,因为拷贝目录,必须要加 -r 参数,现在,再次使用 cp 命令拷贝目录,具体命令所下所示:

cp -r /tmp/haicoder /home

运行后,终端输出如下:

101_Linux拷贝文件或目录cp命令.png

这次,我们看到,拷贝成功了,不再报错了,现在,我们使用 ls 命令,查看我们拷贝的文件,具体命令如下:

ls -ld /home/haicoder

运行后,终端输出如下:

102_Linux拷贝文件或目录cp命令.png

我们看到,我们拷贝的目录已经存在了。

Linux复制文件和目录(cp)总结

在 Linux 中,cp 命令用于将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。