个人主页:平行线也会相交
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创
收录于专栏【Linux专栏】🎈
本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌
演示环境:centos7
cp指令用于复制文件或目录。
基本格式: cp [选项] 源文件 目标文件
选项 | 作用 |
---|---|
-r | 递归复制整个目录,包括其子目录和文件。 |
-p | 保留源文件的属性(如权限、时间戳等)。这将尽可能保留源文件的原始属性。 |
-i | 交互式地询问是否覆盖已存在的目标文件。如果要复制多个文件,将会逐个询问。 |
-f | 强制复制,即使目标文件或目录已经存在,也会覆盖它们。 |
-v | 显示详细的复制过程,包括复制的文件名和目录名。 |
-u | 只复制源文件中修改时间较新的文件,跳过那些已经存在且比源文件旧的目标文件。 |
-n | 不覆盖已存在的目标文件,即跳过已存在的文件。 |
-s | 创建符号链接而不是复制文件。 |
目录
- cp example.txt backup.txt(备份文件)
- -r(重点)
- -p
- -i
- -f
- -v
- -n
- -u
cp example.txt backup.txt(备份文件)
例一:
cp example.txt backup.txt
:将复制源文件并将其粘贴到目标文件位置。如果目标文件已经存在,它将被覆盖。
现在将当前目录中的文件test1.txt
复制到当前目录的文件夹temp
中去:
例二:cp test1.txt temp/
(如果temp/
后面什么也不添加,会复制过去的文件名的名称依然是test1.txt
),如下:
例三:cp test1.txt temp/test.txt
(temp/
后面加上test.txt
,意思是这里复制过去的文件的文件名称为test.txt
),如下:
-r(重点)
使用-r选项,cp指令会递归地复制目录及其内容,包括子目录和文件。
例一:
cp -r temp new_temp
:将目录temp
复制到当前目录中的new_temp
中去,请看:
> 例三:
cp -r a b c x
现在,要将目录a、目录b、目录c全部复制粘贴到目录x中,请看:
-p
-p选项:复制的目标文件会继承源文件的权限和其他属性,以尽可能地保持它们的一致性。
需要注意的是:
如果目标文件已经存在,它的权限和属性将被覆盖。
如果同时想保持目录结构,可以结合使用-r选项和-p选项来进行递归复制,如下所示:cp -rp a a_1(或者分开写即cp -r -p a a_1)
简单来说,-p
选项作用就是复制且保持文件属性不变。
-i
在cp指令中,-i选项用于在复制文件时进行交互式确认。当目标文件已经存在时,-i选项会提示用户是否覆盖目标文件。
cp -i t1.txt t2.txt
请看举例:
-f
-f选项:
使用cp命令复制文件时,如果目标文件已经存在,cp指令会询问是否覆盖目标文件。但是当你使用-f选项时,cp指令会强制覆盖目标文件而不进行询问。
-v
-v选项:
使用-v选项后,cp指令会显示每个复制操作的详细信息,包括复制的源文件和目标文件的名称。
请看举例:
-n
-n
:如果目标文件已经存在,cp命令将不会覆盖它,而是跳过复制操作。
举个例子,如下图,要将test.txt
文件复制到目录c
中去。
输入命令:cp -n test.txt a/b/c/
。
此时目录c
中就有了test.txt
文件。
需要注意的是:
如果目标位置已经存在名为test.txt
的文件,使用以下命令将会跳过复制操作。
如果目标位置不存在相同名称的文件,-n选项将不会产生任何影响,cp命令将正常执行复制操作。
-u
-u
:只复制内容发生变化的文件,或者当目标文件不存在时,也会发生复制。
以上就是cp指令中常见的选项,当然由于一些选项并不是很常见、所以这里就不再一一列举了。