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

news2024/11/27 10:37:16

在这里插入图片描述

文章标题

  • 简介
  • 参数列表
  • 二,使用介绍
    • 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.coloradmin.cn/o/844256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刷题笔记 day9

1658 将 x 减到 0 的最小操作数 解析:1. 当数组的两端的数都大于x时,直接返回 -1。 2. 当数组所有数之和小于 x 时 ,直接返回 -1。 3. 数组中可以将 x 消除为0,那么可以从左边减小为 0 ;可以从右边减小为 0 &#xff1…

20230807通过ffmpeg将DTS编码的AUDIO音频转换为AAC编码

20230807通过ffmpeg将DTS编码的AUDIO音频转换为AAC编码 2023/8/7 20:04 ffmpeg dts 转AAC 缘起:由于网上找的电影没有中文字幕,有内置的英文字幕,但是还是通过剪映/RP2023识别一份英文字幕备用! I:\Downloads\2005[红眼航班]Red E…

助力企业数字化转型,为何 PaaS 化是最佳方式?

在数字化的浪潮中,身份管理已经成为各个行业数字化转型的关键要素。建立一个高效的身份治理中台,不仅能有效保障企业信息安全和数据安全,还能提升企业的数字化程度。 然而,身份管理的构建并非一项简单的任务。当企业在构建身份治理…

llama2模型下载

介绍 LLaMA 2-CHAT与OpenAI ChatGPT效果一样好。LLaMA 2与LLaMA 1架构相同,LLaMA 2训练数据是2000000000000个tokens,还是用了1000000个人类新标注的数据。上下文长度由2048提升为4096。 本教程提供两种下载方式: 1官方下载脚本下载 2hugging face网站下载 官网资格申请 …

赴日IT培训 赴日程序员工作适合什么人?

日本作为全球第三大经济体,IT行业发展十分迅速,日本拥有世界领先的科技公司,如索尼、丰田、日立等,这为IT行业提供了广阔的发展平台和良好的职业前景。此外,日本政府对IT行业也给予了充分的政策支持,像是对…

[CKA]考试之查看Pod日志

由于最新的CKA考试改版,不允许存储书签,本博客致力怎么一步步从官网把答案找到,如何修改把题做对,下面开始我们的 CKA之旅 题目为: Task 监控名为foobar的Pod的日志,并过滤出具有unable-to-access-websi…

Windows系统下添加了新环境变量无需重启电脑激活新环境变量的方法

首先WinR,再输入cmd,进入终端,输入以下命令: set Pathc输入完以上命令回车,如下: 关闭终端后再次打开输入cl,如果输出以下类似信息说明新的环境变量已经添加成功,如下: …

前端实习day20

今天解决了不少bug&#xff0c;成就感满满&#xff0c;有几个问题困扰了我很久&#xff0c;我查阅了很多博客&#xff0c;终于找到解决思路&#xff0c;顺利解决&#xff0c;这里记录一下解决思路。 1、在通过this.$refs.layoutSide.style设置<a-layout-sider>的宽度时&…

kali常见字典目录

kali常见字典目录 Kali Linux 是一个流行的渗透测试和安全评估操作系统&#xff0c;它预装了许多用于渗透测试和安全研究的工具&#xff0c;包括各种字典文件。以下是一些 Kali Linux 中常见的字典目录&#xff1a; 当然可以&#xff01;以下是 Kali Linux 中常见的一些字典目…

小研究 - MySQL 分区分表的设计及实(二)

随着信息技术的快速发展&#xff0c;数据量越来越大&#xff0c;海量的表查询操作需要消耗大量的时间&#xff0c;成为影响数据库访问性能提高的主要因素。为了提升数据库操作的查询效率和用户体验&#xff0c;在关系型数据库管理系统(MySQL)中通过 range 分区和 Merge 存储&am…

重生学c++系列第三课类和对象(上)

好的我们重生c系列的前两期已经介绍完了c祖师爷针对C语言补充的几个新功能&#xff0c;现在我们进入c的真正课题学习——类与对象: C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 比如说我们洗菜做饭&am…

QT生成Debug和Release发布版后,运行exe缺少dll问题

在QT Creator生成debug和release的exe执行文件后&#xff0c;运行时&#xff0c;报错缺少*.dll.解决办法1&#xff1a; 在系统环境变量中添加D:\Qt\Qt5.13.2\Tools\mingw730_64\bin后&#xff0c;即可运行。 当使用此方法时&#xff0c;将exe拷贝到其他电脑中运行时&#xff0c…

DAY4,C高级(shell中的函数,循环,排序思想)

1.整理思维导图&#xff1b; 2.写一个函数&#xff0c;获取用户的uid和gid并使用变量接收&#xff1b; 1 #!/bin/bash 2 function get_id()3 {4 read -p "输入用户&#xff1a;…

海外社媒营销:如何树立品牌个性与目标受众共鸣?

随着全球化的不断深入&#xff0c;海外市场对于企业的重要性越来越凸显。在这个数字化时代&#xff0c;社交媒体已经成为品牌塑造和推广的重要渠道之一。然而&#xff0c;海外市场竞争激烈&#xff0c;想要在众多品牌中脱颖而出&#xff0c;就需要在社交媒体关注者的心中树立品…

javaweb监听和渲染技术

jsp入门使用 <% page import"java.io.PrintWriter" %> <%-- Created by IntelliJ IDEA.--%> <%-- User: 韩顺平--%> <%-- jsp的模板如何定制&#xff0c;一会再说明--%> <%-- To change this template use File | Settings | File T…

64位交叉编译器版本切换

操作系统版本 lkmaoubuntu:~$ cat /proc/version Linux version 5.6.18 (lkmaoubuntu) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #1 SMP Tue Jul 25 23:11:17 PDT 2023 lkmaoubuntu:~$ 64位 安装默认版本和gcc5版本。 sudo apt-get install gcc-aarch64-linux-g…

秋招打卡011(20230807)

文章目录 前言一、今天学习了什么&#xff1f;二、算法----》单调栈1、介绍2、题目 总结 前言 提示&#xff1a;这里为每天自己的学习内容心情总结&#xff1b; Learn By Doing&#xff0c;Now or Never&#xff0c;Writing is organized thinking. 今天拿到了上周面试的结果…

整理mongodb文档:集合名字有类似-等特殊字符串如何处理?

个人博客 整理mongodb文档:集合名字有类似-等特殊字符串如何处理&#xff1f; 首先&#xff0c;先创建一个collection的名字为’collection-test’&#xff0c;这个表名中&#xff0c;colletion的名字有一个特殊字符串“-”&#xff0c;但是后面插入数据的时候会有这么一个错…

SpringCloud(29):Nacos简介

1 什么是配置中心 1.1 什么是配置 应用程序在启动和运行的时候往往需要读取一些配置信息&#xff0c;配置基本上伴随着应用程序的整个生命周期&#xff0c;比如&#xff1a;数据库连接参数、启动参数等。 配置主要有以下几个特点&#xff1a; 配置是独立于程序的只读变量 …

瑞芯微RK3568核心板-4G联网测试

​ &#x1f308;引言 RK3568是瑞芯微针对AIOT和工业市场推出的一款高性能、低功耗、功能丰富的应用处理器。它采用了四核ARM架构64位Cortex-A55处理器&#xff0c;主频高达2.0GHz&#xff0c;集成瑞芯微自研1TOPS算力NPU, 同时集成Mali-G52 2EE GPU&#xff0c;支持4K60fps …