linux命令 cp 递归复制和带权限复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令 cp 递归复制和带权限复制相关的知识,希望对你有一定的参考价值。

参考技术A cp -r 递归复制源目录下所有文件及子目录 到 目标目录或文件

cp -p 把源文件或目录下的所具有的权限一同复制 到 目标目录或文件

Linux命令之复制文件或目录cp

概述

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 递归复制和带权限复制的主要内容,如果未能解决你的问题,请参考以下文章

Linux之cp命令详解

LINUX命令的cp -r 和-R的区别是??

Linux文件拷贝命令

Linux复制文件用啥命令怎么用

Linux常用命令3

Linux命令之复制文件或目录cp