【Linux命令详解 | cp命令】Linux系统中用于复制文件或目录的命令

在这里插入图片描述

文章标题

  • 简介
  • 参数列表
  • 二,使用介绍
    • 1. 复制单个文件
    • 2. 复制多个文件
    • 3. 复制目录
    • 4. 保留文件属性
    • 5. 创建链接
    • 6. 强制覆盖
    • 7. 显示复制进度
    • 8. 创建备份
    • 9. 只有当源文件比目标文件新时才复制
    • 10. 复制链接文件
  • 总结

简介

cp命令在Linux系统中用于复制文件或目录。其功能强大,操作简便,是Linux用户日常操作的基本命令之一。该命令可以复制单个文件,多个文件,甚至整个目录。可以在复制时保留原始文件的日期和权限,也可以改变新文件的所有者和权限。以下是对cp命令的详细介绍。

参数列表

下表列出了cp命令的主要参数及其功能。

参数功能描述
-a这是归档选项,用于复制目录及其所有子目录和文件。这等同于-dpR参数的组合。
-b如果要复制的目标文件已存在,使用此选项会创建其备份。
-d如果源文件是链接文件,该选项将保留链接而不是链接指向的文件。
-f如果目标文件已存在,使用此选项将强制覆盖目标文件。
-i这是交互模式,在覆盖目标文件前要求用户确认。
-l创建源文件的硬链接,而不是复制文件。
-L如果源文件是链接文件,该选项将复制链接指向的文件。
-p保留源文件的原始文件属性(如日期和权限)。
-R递归复制,常用于复制目录。
-s创建源文件的符号链接,而不是复制文件。
-u如果目标文件已存在,且源文件比目标文件新,此选项将更新目标文件。
-v显示复制进度。

二,使用介绍

1. 复制单个文件

复制单个文件是cp命令最基本的用法。这里,源文件是要复制的文件,目标文件是复制后新创建的文件。

命令格式:

cp source_file target_file

举个例子,假设有一个名为file1.txt的文件,要复制到当前目录下的新文件file2.txt

命令和结果如下:

$ cp file1.txt file2.txt

执行上述命令后,会在当前目录下创建一个新文件file2.txt,其内容与file1.txt一致。

2. 复制多个文件

cp命令也可以一次复制多个文件到指定目录。这里,源文件是要复制的多个文件,目标目录是文件复制后的目标目录。

命令格式:

cp source_file1 source_file2 ... target_directory

例如,要将file1.txtfile2.txt复制到名为dir1的目录下。

命令和结果如下:

$ cp file1.txt file2.txt dir1

执行上述命令后,dir1目录中将会有file1.txtfile2.txt这两个文件,其内容与原始文件一致。 (To be continued with “next”)

3. 复制目录

复制目录需要使用-R参数(或-r--recursive),表示递归复制。这里,源目录是要复制的目录,目标目录是复制后的新目录。

命令格式:

cp -R source_directory target_directory

例如,要将名为dir1的目录复制为一个新的目录dir2

命令和结果如下:

$ cp -R dir1 dir2

执行上述命令后,当前目录下会出现一个新的目录dir2,其内容和dir1一致。

4. 保留文件属性

在复制文件或目录时,如果要保留原始文件的日期和权限,可以使用-p参数(preserve)。

命令格式:

cp -p source_file target_file

例如,要复制file1.txtfile2.txt,并保留file1.txt的日期和权限。

命令和结果如下:

$ cp -p file1.txt file2.txt

执行上述命令后,file2.txt的日期和权限将与file1.txt一致。

5. 创建链接

cp命令也可以创建链接,而不是复制文件。可以使用-l参数创建硬链接,或者使用-s参数创建符号链接。

命令格式:

cp -l source_file target_file  # 创建硬链接
cp -s source_file target_file  # 创建符号链接

例如,要为file1.txt创建一个硬链接link1

命令和结果如下:

$ cp -l file1.txt link1

执行上述命令后,link1将是file1.txt的硬链接。修改link1的内容,file1.txt的内容也会跟着改变。

同样,也可以为file1.txt创建一个符号链接symlink1

命令和结果如下:

$ cp -s file1.txt symlink1

执行上述命令后,symlink1将是file1.txt的符号链接。symlink1指向file1.txt,修改file1.txt的内容,可以通过symlink1看到改变的内容。 (To be continued with “next”)

6. 强制覆盖

如果希望在复制文件时强制覆盖目标文件,可以使用-f参数。该参数将强制覆盖目标文件,而不需要用户确认。

命令格式:

cp -f source_file target_file

例如,复制file1.txt到已存在的file2.txt

命令和结果如下:

$ cp -f file1.txt file2.txt

执行上述命令后,file2.txt会被file1.txt覆盖,无需用户确认。

7. 显示复制进度

在复制大文件或目录时,可能需要一段时间。cp命令的-v参数可以显示复制进度。

命令格式:

cp -v source_file target_file

例如,复制file1.txtfile2.txt

命令和结果如下:

$ cp -v file1.txt file2.txt
'file1.txt' -> 'file2.txt'

执行上述命令后,系统会显示复制的文件和目标位置。

8. 创建备份

如果希望在覆盖目标文件之前创建其备份,可以使用-b参数。

命令格式:

cp -b source_file target_file

例如,复制file1.txt到已存在的file2.txt

命令和结果如下:

$ cp -b file1.txt file2.txt

执行上述命令后,系统将首先为file2.txt创建一个备份,然后才覆盖file2.txt。 (To be continued with “next”)

9. 只有当源文件比目标文件新时才复制

在某些情况下,只有当源文件比目标文件新时,才希望执行复制操作。此时,可以使用-u参数。

命令格式:

cp -u source_file target_file

例如,只有当file1.txtfile2.txt新时,才复制file1.txtfile2.txt

命令和结果如下:

$ cp -u file1.txt file2.txt

如果file1.txt的修改时间比file2.txt晚,执行上述命令后,file2.txt会被file1.txt覆盖。如果file1.txt的修改时间比file2.txt早,cp命令不会进行复制。

10. 复制链接文件

在默认情况下,cp命令会复制链接文件指向的实际文件。如果希望复制链接文件本身,而不是它所指向的文件,可以使用-d参数。

命令格式:

cp -d source_link target_link

例如,有一个链接文件link1,指向file1.txt,现在希望复制link1link2

命令和结果如下:

$ cp -d link1 link2

执行上述命令后,link2将是新的链接文件,和link1指向同一个文件file1.txt

总结

cp命令在Linux系统中是非常常用的一个命令,无论是复制单个文件、多个文件还是整个目录,cp命令都能很好地完成任务。通过熟练地使用各种参数,可以实现文件属性的保留、创建链接、交互式覆盖、强制覆盖、显示复制进度等多种功能。希望通过这篇文章,大家对cp命令有了更深入的理解和掌握。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/79437.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通用人工智能操作系统

随着科技的飞速发展,人工智能已经成为了当今世界最热门的技术领域之一。从智能手机、自动驾驶汽车到智能家居系统,人工智能技术已经渗透到了我们生活的方方面面。然而,尽管人工智能在很多领域取得了显著的成果,但它仍然存在一些局…

电动汽车设计、制造、研发的学科、技术和前沿科技综述

引言:电动汽车作为替代传统燃油汽车的一种先进交通工具,不仅具有环保、低噪音等优势,而且对于能源消耗和气候变化等全球性问题也具有重要意义。本文将综述与电动汽车设计、制造、研发相关的学科、技术和前沿科技,以期对电动汽车领…

【Python】Web学习笔记_flask(3)——上传文件

用GET、POST请求上传图片并呈现出来 首先还是创建文件上传的模板 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>上传图片</title> </head> <body> <form action""…

使用 POI 在 Word 中重新开始编号、自定义标题格式

效果图 引入依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><!-- https…

【GO】 33.go-zero 示例

1. 获取go-zero库 go get -u github.com/zeromicro/go-zero 2. 安装goctl brew install goctlgoctl -v #goctl version 1.5.4 darwin/amd64 3. 创建.api文件&#xff0c; greet.api goctl api -o greet.api syntax "v1"info (title: // TODO: add titledesc: //…

OSPF综合实验

实验题目如下&#xff1a; 实验拓扑如下&#xff1a; 实验要求如下&#xff1a; 【1】R4为ISP&#xff0c;其上只能配置IP地址: R4与其他所有直连设备间使用公有 【2】R3---R5/6/7为MGRE环境&#xff0c;R3为中心站点 【3】整个OSPF环境IP地址为172.16.0.0/16 【4】所有设备…

Python——调用webdriver.Chrome() 报错

今天运行脚本&#xff0c;报错内容如下&#xff1a; collecting ... login_case.py:None (login_case.py) login_case.py:11: in <module> dr webdriver.Chrome() D:\Program Files (x86)\Python\Python39\Lib\site-packages\selenium\webdriver\chrome\webdriver.p…

外网通过ipv6访问家里设备

想从公司访问家里的设备&#xff0c;比较轻松方便的&#xff0c;用向日葵也可以远程。但是家里电脑比较old的了&#xff0c;向日葵开起来&#xff0c;占用内存挺大的&#xff0c;想尝试windows自带的“mstsc”&#xff0c;所以硬着头皮搞ipv6. &#xff08;重点提示&#xff1…

MySQL-NoSQL整体笔记---持续输出中

MySQL部分 一、搭建 MySQL 数据库服务器 1、下载并上传glibc版本的Mysql 2、新建用户以安全方式运行进程 [roottemplate ~]# groupadd -r -g 306 mysql [roottemplate ~]# useradd -g 306 -r -u 306 mysql3、安装并初始化mysql [roottemplate ~]# tar xf mysql-5.7.36-linu…

Django实现音乐网站 ⑷

使用Python Django框架制作一个音乐网站&#xff0c;在系列文章3的基础上继续开发&#xff0c; 本篇主要是后台歌曲类型表、歌单表模块功能开发。 目录 表结构设计 歌曲类型表结构 歌单表结构 创建表模型 创建表 后台注册表模型 引入表模型 后台自定义 总结 表结构设计…

在.net 6.0中 调用远程服务器web服务,Webservices(xxx.asmx) ,RESTful 风格,2种解决方案。

1.使用 Connected Services&#xff1a; 右键单击您的项目&#xff0c;选择 "Add"&#xff08;添加&#xff09;-> "Connected Services"&#xff08;已连接的服务&#xff09;。 在 "Connected Services" 对话框中&#xff0c;选择 "W…

Gitlab CI/CD笔记-第一天-GitOps和以前的和jenkins的集成的区别

一、GitOps-CI/CD的流程图与Jenkins的流程图 从上图可以看到&#xff1a; GitOps与基于Jennkins技术栈的CI/CD流程&#xff0c;无法从Jenkins集成其他第三方开源的项目来实现换成了Gitlab来进行集成。 好处在于&#xff1a;CI 一个工具Gitlab就行了&#xff0c;但CD部分依旧是…

SpringBoot + Docker 实现一次构建到处运行~

一、容器化部署的好处 图片 Docker 作为一种新兴的虚拟化方式&#xff0c;它可以更高效的利用系统资源&#xff0c;不需要进行硬件虚拟以及运行完整操作系统等额外开销。 传统的虚拟机技术启动应用服务往往需要数分钟&#xff0c;而 Docker 容器应用&#xff0c;由于直接运行…

关于Java的IO流开发

IO概述 回想之前写过的程序&#xff0c;数据都是在内存中&#xff0c;一旦程序运行结束&#xff0c;这些数据都没有了&#xff0c;等下次再想使用这些数据&#xff0c;可是已经没有了。那怎么办呢&#xff1f;能不能把运算完的数据都保存下来&#xff0c;下次程序启动的时候&a…

嵌入式该往哪个方向发展?

1. 你所在的城市嵌入式Linux岗位多吗&#xff1f;我觉得这是影响你做决定的另一个大问题。我们学嵌入式Linux这门技术&#xff0c;绝大部分人是为了从事相关的工作&#xff0c;而不是陶冶情操。但是根据火哥统计来看&#xff0c;嵌入式Linux的普遍薪资虽然高于单片机&#xff0…

【论文阅读】UNICORN:基于运行时来源的高级持续威胁检测器(NDSS-2020)

UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats NDSS-2020 哈佛大学 Han X, Pasquier T, Bates A, et al. Unicorn: Runtime provenance-based detector for advanced persistent threats[J]. arXiv preprint arXiv:2001.01525, 2020. 源码&…

IDEA中怎么使用git下载项目到本地,通过URL克隆项目(giteegithub)

点击 新建>来自版本控制的项目 点击后会弹出这样一个窗口 通过URL拉取项目代码 打开你要下载的项目仓库 克隆>复制 gitee github也是一样的 返回IDEA 将刚刚复制的URL粘贴进去选择合适的位置点击克隆 下载完成

新式健身房,如何实现都市人的健身自由?

在中国超40万亿的庞大消费市场中&#xff0c;从来不缺少叙事宏大的故事。 只不过&#xff0c;像突破万家门店这样的故事&#xff0c;往往出现在餐饮、医药、零售等行业的头部玩家身上&#xff0c;比如瑞幸、蜜雪冰城、华莱士、益丰药房、美宜佳等品牌。 健身房这个文化体育领…

ORB-SLAM2配置与安装

本篇博客最早发布于实验室公共博客&#xff0c;但已无人维护&#xff0c;现迁移至个人博客 有这些依赖项&#xff1a; https://github.com/raulmur/ORB_SLAM2 主要参考下面的博文 ORB-SLAM2 初体验 —— 配置安装 - MingruiYu - 博客园 (cnblogs.com) 注意在安装依赖项Pangoli…

详解Quest 2积分与奖励规则

7月28日&#xff0c;在万众期待中&#xff0c;Mysten Labs在Quest门户网站上宣布了Quest 2的到来。经过严密的筹划&#xff0c;本着真实、公平以及用户至上的原则&#xff0c;现在向大家介绍Quest 2的积分规则以及奖励规则。 温馨提示&#xff1a;第一轮Bullshark Quest是一次精…