【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.mzph.cn/news/26881.shtml

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

相关文章

uniapp根据高度表格合并

没有发现比较友好的能够合并表格单元格插件就自己简单写了一个,暂时格式比较固定 一、效果如下 二、UI视图+逻辑代码 <template><view><uni-card :is-shadow="false" is-full

出现Error: Cannot find module ‘compression-webpack-plugin‘错误

错误&#xff1a; 解决&#xff1a;npm install --save-dev compression-webpack-plugin1.1.12 版本问题

nginx+flask+uwsgi部署遇到的坑

文章目录 1.环境&#xff1a;2.uwsgi_conf.ini具体配置内容3.nginx 具体配置4.具体命令(注意使用pip3命令安装)5.服务异常排查 1.环境&#xff1a; centos8 uWSGI 2.0.22 gmssl 3.2.2 nginx version: nginx/1.18.0 项目目录&#xff1a; 2.uwsgi_conf.ini具体配置内容 [uws…

回归预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-BiGRU鹈鹕…

USB采集卡如何打pts

一、使用采集卡提供的pts 二、手动打pts 1.usb采集设备pts的问题 2.采集卡驱动&#xff0c;UVC/UAC&#xff0c;ffmpeg的关系 3.如何自己打pts 4.音视频同步调优 5.NTP等联网调时工具带来的不同步问题 一、使用采集卡提供的pts 我们用使用pc摄像头和使用pc麦克风声卡里的方法&…

Butterfly 安装文档(一) 快速开始

安装 在你的Hexo根目录里面 git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly 应用主题 修改 Hexo 根目录下的 _config.yml&#xff0c;把主题改为 butterfly theme: butterfly 安装插件 如果你没有 pug 以及 stylus 的渲染…

阻抗是什么?什么时候要考虑阻抗匹配?

在电路设计中&#xff0c;我们常常碰到跟阻抗有关的问题&#xff0c;那么到底什么是阻抗&#xff1f; 在具有电阻、电感和电容的电路里&#xff0c;对电路中电流所起的阻碍作用叫做阻抗。常用Z来表示&#xff0c;它的值由交流电的频率、电阻R、电感L、电容C相互作用来决定。由…

vue3学习-Pinia状态管理

Pinia 定义一个Store import { defineStore } from pinia export const useStore defineStore(main, {})这个 name&#xff0c;也称为 id&#xff0c;是必要的&#xff0c;Pinia 使用它来将 store 连接到 devtools。 将返回的函数命名为 use… 是跨可组合项的约定&#xff0…

RocketMQ使用

RocketMQ角色 RocketMQ的基本概念 同步发送消息 /*** author* create 2023-04-08 17:24* 发送同步消息* 适用于重要的消息 例如消息通知&#xff0c;短信通知*/ public class SyncProducer {public static void main(String[] args) throws Exception {String topic"…

re学习(29)攻防世界-CatFly(复原反汇编)

因为这是一个.dll文件&#xff0c;在Linux上运行一下&#xff1a; 找到主要函数&#xff1a;&#xff08;以及由上面三部分对应的代码部分&#xff09; __int64 __fastcall main(int a1, char **a2, char **a3) {size_t v3; // rbx__int16 v5[4]; // [rsp10h] [rbp-4B0h] B…

【MCU学习】GD32F427VG开发

&#xff08;一&#xff09;学习文档和例程 兆易创新GD32 MCU参考资料下载 1.GD232F4xx的Keil芯片支持包 2.标准固件库和示例程序 3.GD32F4xx_固件库使用指南_Rev1.2 4.用户手册&#xff1a;GD32F4xx_User_Manual_Rev2.8_CN 5.数据手册&#xff1a;GD32F427xx_Datasheet_Rev…

通过MySQL删除Hive元数据信息

之前遇到过一个问题&#xff0c;在进行Hive的元数据采集时&#xff0c;因为Hive表的文件已经被删除了&#xff0c;当时是无法删除表&#xff0c;导致元数据采集也发生了问题&#xff0c;所以希望通过删除Hive表的元数据解决上述问题。 之前安装时&#xff0c;经过特定的配置后…

单片机实现动态内存管理

1.简介 多数传统的单片机并没有动态内存管理功能。单片机通常具有有限的存储资源&#xff0c;包括固定大小的静态RAM&#xff08;SRAM&#xff09;用于数据存储和寄存器用于特定功能。这些资源在编译时被分配并且在程序的整个生命周期中保持不变。 2.动态内存管理好处 灵活性和…

SpringBoot使用@Autowired将实现类注入到List或者Map集合中

前言 最近看到RuoYi-Vue-Plus翻译功能 Translation的翻译模块配置类TranslationConfig&#xff0c;其中有一个注入TranslationInterface翻译接口实现类的写法让我感到很新颖&#xff0c;但这种写法在Spring 3.0版本以后就已经支持注入List和Map&#xff0c;平时都没有注意到这…

Jenkins持续集成-快速上手

Jenkins持续集成-快速上手 注&#xff1a;Jenkins一般不单独使用&#xff0c;而是需要依赖代码仓库&#xff0c;构建工具等。 搭配组合&#xff1a;GitGitee&#xff08;GitHub、GitLab&#xff09;MavenJenkins 前置准备 常见安装方式&#xff1a; war包Docker容器实例&…

WEB集群——http、tomcat

1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8&#xff0c;配置服务启动脚本&#xff0c;部署jpress应用。 1. 简述静态网页和动态网页的区别。 1&#xff09;、静态网页 &#xff08;1&#xff09;、什么是静态网页 请求响应信息&…

Java 工具类(列表)

去重 对列表进行保留顺序的去重 List<Integer> list List.of(1, 2, 4, 3, 1); LinkedHashSet<Integer> set new LinkedHashSet<>(list); ArrayList<Integer> integers new ArrayList<>(set); // 1, 2, 4, 3删除 按照单逻辑进行删除 List&…

基于fpga的电子时钟

文章目录 前言实验手册一、实验目的二、实验原理1&#xff0e;理论原理2&#xff0e;硬件原理 三、系统架构设计四、模块说明1&#xff0e;模块端口信号列表按键消抖模块&#xff08;key&#xff09;计数器模块&#xff08;counter&#xff09;蜂鸣器乐谱模块(music)蜂鸣器发声…

leetcode做题笔记57

给你一个 无重叠的 &#xff0c;按照区间起始端点排序的区间列表。 在列表中插入一个新的区间&#xff0c;你需要确保列表中的区间仍然有序且不重叠&#xff08;如果有必要的话&#xff0c;可以合并区间&#xff09;。 思路一&#xff1a;模拟题意 int pushbackInterval(int…

GD32F103VE侵入事件

GD32F103VE的TAMPER引脚(PC13)&#xff0c;当PC13输入低电平时&#xff0c;会产生一个侵入检测事件。它会将所有“数据备份寄存器”内容清除。 这个功能有什么用&#xff1f; 一是防止被人开壳&#xff0c;抄袭。二是自毁功能。 直奔主题&#xff0c;多一句就是浪费时间。测试…