千家信息网

如何理解cp命令

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本篇文章为大家展示了如何理解cp命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。01 命令简介今天我们来介绍一下文件和目录的复制。cp--复制文件或目录02
千家信息网最后更新 2025年01月21日如何理解cp命令

本篇文章为大家展示了如何理解cp命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

01 命令简介

今天我们来介绍一下文件和目录的复制。

cp--复制文件或目录

02 命令详解

语法

cp [选项] 参数1 参数2

以上是cp命令的语法,可以看到cp命令在使用时必须提供两个参数。

参数

参数1代表源文件,即要复制哪个文件或目录;参数2代表目标文件,即复制到哪个文件或目录。

cp [选项] 源文件 目标文件


复制docker.sh,只提供一个参数,系统提示缺少一个目标文件。提供两个参数后,成功将docker.sh复制到docker1.sh。

cp命令有三种主要的操作模式:

文件复制到文件文件复制到目录目录复制到目录

复制docker.sh到docker1.sh就是第一种操作模式。在执行cp命令时,如果目标文件不存在,则会创建目标文件;如果目标文件已经存在,默认会用源文件覆盖目标文件。


首先新建一个old_file文件,然后复制到new_file文件。在执行cp命令之前,new_file文件是不存在的,于是系统生成了new_file。


这个时候,new_file文件和old_file文件都是空白文件,cat命令可用来查看文件内容,后面的文章再给大家介绍。

然后在old_file文件中添加一句话,保存后再执行cp命令,查看new_file文件,发现new_file文件的内容已经被old_file文件所覆盖。


以上是文件复制到文件的操作模式,接下来介绍一下文件复制到目录的操作模式。

文件到文件和文件到目录,两种操作模式最大的区别是文件到目录的模式可以同时包含多个源文件,而文件到文件的模式只允许一个源文件,其他并没有什么区别。


可以看到,文件复制到目录的操作模式下,系统没有报错;但文件复制到文件的操作模式,提供三个参数,系统报错,提示new_file不是目录。

最后介绍目录复制到目录的操作模式。这种模式,可以同时复制文件和目录,但是在复制目录的时候,必须添加"-r"选项,cp命令才会将源目录复制到目标目录。


添加"-r"选项前,系统提示没有提供"-r"选项,省略了目录的复制,只复制了docker.sh文件。


添加"-r"选项后,成功将目录复制到了目标目录。也可以使用"-R"选项,效果和"-r"选项一样。

需要注意的是,在文件到目录、目录到目录的操作模式中,目标文件指定的目录必须存在,cp命令并不会为我们创建目录。


选项

cp命令选项有点多,这里我挑几个比较常用的选项给大家介绍一下,其余的大家可以查阅相关资料来进行学习。

首先是"-i"选项。在执行cp命令时,如果目标文件存在,则默认用源文件覆盖目标文件。添加"-i"选项之后,系统会在覆盖之前询问我们。

cp -i 源文件 目标文件

首先我们新建old_file文件,复制到new_file文件,然后在old_file文件中添加一句话。


此时new_file是没有内容的,我们再执行cp命令,这个时候添加"-i"选项。

添加"-i"选项后,系统会询问我们是否覆盖目标文件。只有我们输入"y"的时候(Y、yes、1、Yes等也可以,能代表"是"一般都行,通常都是使用y),系统才会覆盖,输入其他任何字符都会被认为不覆盖。

添加"-i"选项后,目标文件存在时,系统都会询问我们。如果有大量的目标文件存在,那我们输入答案都要费很大功夫,特别是当我们只想复制不存在的目标文件时,这个选项显然不能很好满足我们的需求。


为此,Linux为我们提供了"-n"选项。添加这个选项之后,系统就默认不覆盖已经存在的目标文件,可以理解为只复制不存在的目标文件。

cp -n 源文件 目标文件


新建old_file和new_file文件,然后修改old_file文件,在执行cp命令时添加"-n"选项,查看new_file文件,依然是空白文件,说明没有用old_file覆盖new_file。

除了可以选择不覆盖已经存在的目标文件,还可以选择强制复制文件,不管目标文件是否存在,这通过"-f"选项来实现。

cp -f 源文件 目标文件

另外,还可以选择只有源文件的时间属性比目标文件新或目标文件不存在的时候才复制,通过"-u"选项来实现,相当于更新。

举个例子。我在桌面上新建了一个工作周报,记录了我这周的工作内容,然后我想把这个文档复制到某个文件夹内,但这个文件夹里已经存在了上周的工作周报,这个时候我肯定要拿桌面的工作周报覆盖文件夹里的工作周报才行,反之,如果文件夹的工作周报比桌面的工作周报新,则不覆盖。"-u"选项就可以执行这个工作。

cp -u 源文件 目标文件

首先将new_file文件更新,这个时候new_file文件相对old_file文件要新一些,此时添加"-u"选项复制一下,发现new_file文件内容没有改变。

以上选项的复制都是不包含属性的,比如时间、权限等。如果想连同源文件的属性也复制过去,就必须使用"-p"选项。

cp -p 源文件 目标文件


首先用stat命令查看old_file和new_file的属性,然后添加"-p"选项复制,发现new_file文件的访问时间和修改时间不是当前时间,而是old_file文件的访问时间和修改时间。

文件权限也被复制到new_file文件。chmod命令用来修改文件和目录的权限,后面的文章会详细讲解。

03 知识总结

语法:    cp [选项] 源文件 目标文件用途:复制文件或目录选项:    -i----覆盖前的交互提示    -n----不覆盖现有文件    -f----强制复制    -u----更新    -p----保留源文件的属性    -r、-R----递归复制目录参数:源文件、目标文件(绝对地址和相对地址都可以)其他:    三种操作模式:文件到文件、文件到目录、目录到目录    文件到文件的操作模式,只允许有两个参数    目录到目录的操作模式,必须添加"-r"或"-R"选项    文件到目录、目录到目录的操作模式,目录必须存在

上述内容就是如何理解cp命令,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

文件 目录 目标 命令 模式 源文件 参数 系统 工作 内容 时候 时间 周报 属性 文件夹 提示 两个 代表 文章 权限 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 顺义区网络营销软件开发反馈 多特下载软件开发 百度纠偏数据库 lora和服务器的对接 网络安全服务机构是哪个网址 徐州颐睿互联网科技有限公司 有哪些公司使用mysql数据库 沉迷网络安全教育幼儿园课件 帮政府做软件开发项目 安卓软件开发自学 java显示数据库的图书信息 软件开发工具有哪些好看的小说 qt连接数据库限制加载驱动 中泰证券北京软件开发 csgo社区服务器僵尸逃跑地图 数据库技术中的脏数据是 加强网络安全技术投入 网络技术转移服务电话 深圳四季软件开发 计算机三级数据库 题型 宁夏银川软件开发花多少钱 手机游戏云服务器都是怎么做的 甘肃九艺互联网科技有限公司 电脑dnf服务器地址在哪里看 电信公司网络安全培训内容 外网访问服务器端口映射 奇门软件开发 数字化网络安全模型 互联网 衍生的科技 个人对软件开发的理解
0