Linux cp 命令详细教程

  • cp 是 Linux 系统中最常用的命令之一,用于复制文件或目录
  • 它可以将源文件/目录复制到指定的目标位置,支持批量复制、强制覆盖、保留文件属性等功能。下面详细介绍其用法。
  • 资料已经分类整理好:https://pan.quark.cn/s/26d73f7dd8a7
一、基本语法
cp [选项] 源文件/目录 目标文件/目录
  • :可以是一个或多个文件/目录(多个源时,目标必须是目录)。
  • 目标:若源是文件,目标可以是文件(重命名复制)或目录(复制到该目录下);若源是目录,目标必须是目录(需配合 -r 选项)。
二、常用选项
选项功能描述
-i交互式操作,若目标文件已存在,会提示是否覆盖(避免误操作)
-f强制覆盖,若目标文件已存在,直接覆盖且不提示(慎用)
-r/-R递归复制目录,用于复制文件夹及其所有子内容
-p保留源文件的属性(如权限、所有者、修改时间等)
-v显示复制过程(verbose,详细输出)
-a等同于 -dR --preserve=all,常用于备份(保留链接、递归复制、保留所有属性)
-l不复制文件,而是创建硬链接(链接文件与源文件共享数据)
-s创建符号链接(软链接),而非复制文件内容
三、实际操作示例
1. 复制文件到指定目录

将文件 file.txt 复制到 docs 目录下(若 docs 不存在,会报错):

cp file.txt docs/
  • docs 目录存在,file.txt 会被复制到 docs 中,文件名不变。
2. 复制文件并重命名

file.txt 复制到当前目录,并命名为 file_copy.txt

cp file.txt file_copy.txt
  • file_copy.txt 已存在,默认会直接覆盖(非交互式shell),建议加 -i 选项确认:
    cp -i file.txt file_copy.txt  # 提示:cp: 是否覆盖 'file_copy.txt'? y
    
3. 复制多个文件到目录

a.txtb.txt 复制到 backup 目录:

cp a.txt b.txt backup/
  • 多个源文件时,目标必须是目录,否则会报错。
4. 复制目录(递归复制)

复制目录 dir1 及其所有子文件/子目录到 dir2dir2 可不存在):

cp -r dir1 dir2  # 若 dir2 不存在,会创建 dir2 并复制 dir1 内容到其中# 若 dir2 存在,会将 dir1 复制到 dir2 内(即 dir2/dir1)
  • 必须加 -r-R,否则会提示“cp: 无法 stat ‘dir1’: 是一个目录”。
5. 保留文件属性复制

复制 data.csvarchive 目录,并保留其权限、修改时间等属性:

cp -p data.csv archive/
  • 可用 ls -l 对比复制前后的文件属性。
6. 强制覆盖文件

当目标文件存在时,无需提示直接覆盖(慎用,可能误删数据):

cp -f old.txt new.txt  # 即使 new.txt 存在,也直接覆盖
7. 创建软链接/硬链接
  • 创建软链接(类似Windows快捷方式):
    cp -s source.txt link.txt  # link.txt 指向 source.txt,删除 source.txt 后 link.txt 失效
    
  • 创建硬链接(与源文件共享数据,删除源文件不影响链接文件):
    cp -l source.txt hardlink.txt
    
8. 备份式复制(保留所有属性)

复制目录 projectbackup,保留链接、权限、所有者等所有属性:

cp -a project/ backup/  # 常用于完整备份目录
四、注意事项
  1. 复制目录必须加 -r:若忘记加 -r,复制目录会报错。
  2. 目标路径的斜杠区别
    • cp file.txt dircp file.txt dir/ 效果相同(若 dir 是目录)。
    • 但推荐加 / 明确表示目标是目录,避免误操作(如 dir 是文件时,会覆盖该文件)。
  3. 权限问题:若复制到没有写入权限的目录(如 /root),会提示“权限不够”,需用 sudo 提升权限。
  4. 避免覆盖重要文件:优先使用 -i 选项,或通过 alias cp='cp -i' 设置别名(大多数Linux默认配置)。

通过灵活组合选项,cp 命令可以满足各种复制需求,从简单的文件复制到复杂的目录备份均能胜任。

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

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

相关文章

java分页插件| MyBatis-Plus分页 vs PageHelper分页:全面对比与最佳实践

MyBatis-Plus分页 vs PageHelper分页:全面对比与最佳实践 一、分页技术概述 在Java持久层框架中,分页是高频使用的功能。主流方案有: MyBatis-Plus分页:MyBatis增强工具的内置分页方案PageHelper分页:独立的MyBatis…

PROFINET转MODBUS TCP网关在机械臂通信操作中的应用研究

在特定的汽车零部件生产工厂焊接生产线上,机械臂被应用于焊接作业,其控制体系基于Profinet协议。同时,工厂的自动化控制体系以西门子S7-1200PLC为核心,通过ModbusTCP协议实现数据交换。为实现焊接过程的自动化控制以及生产数据的实…

Mac中如何Chrome禁用更新[update chflags macos]

写在前面 在 macOS 系统中,系统更新提示的小红点常常让人不胜其扰。 尤其是当你希望保持现有系统的稳定性,或因兼容性问题暂不想升级时,这个小红点就像一个顽固的提醒。 - windowsMac版直接删除更新程序, 有效 cd ~/Library/Google/Googl…

LoRA使用-多个LoRA

LoRA的风格分类 不用去记它有什么很特别的风格,简单来说基础模型就像一个全能画手,什么都能画,而LoRA是在某个风格中经过特训的它的一个分身。使得它更精通该风格。 关于LoR风格分类:提示词撰写公式 Checkpoint&LoRA对比 训…

牛客刷题 — 【排序】[NOIP2012] 国王的游戏(高精度结构体排序)

1.题面:传送门 2. 思路: 相邻的两个大臣的先后顺序只会互相影响,并不会影响其他人的金币数。 假设前 i-1 个人左手上的数乘积为 s 。 ① 若 A 大臣排在B 大臣的前面,则: s 此时的金币数最大值为 。 ② 若B大臣排…

grpc 和限流Sentinel

基于gRPC的微服务通信模块技术方案书 1. 总体架构设计 #mermaid-svg-TiN9cudEfW5mCWHm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TiN9cudEfW5mCWHm .error-icon{fill:#552222;}#mermaid-svg-TiN9cudEfW5mCWHm…

经典灰狼算法+编码器+双向长短期记忆神经网络,GWO-Transformer-BiLSTM多变量回归预测,作者:机器学习之心!

经典灰狼算法编码器双向长短期记忆神经网络,GWO-Transformer-BiLSTM多变量回归预测,作者:机器学习之心! 目录 经典灰狼算法编码器双向长短期记忆神经网络,GWO-Transformer-BiLSTM多变量回归预测,作者&#…

VGG Image Annotator (VIA):一款免费的数据标注软件介绍与使用

VGG Image Annotator (VIA):一款免费的数据标注软件介绍与使用 在计算机视觉领域,数据标注是训练机器学习模型的基础步骤之一,而标注工具的选择直接影响标注的效率和准确性。众多标注工具中,VGG Image Annotator (VIA) 是一个开源…

CSS实现百分比水柱图

背景 在echarts没发现有可以直接使用的展示百分比的柱形图,只好自己封装一个组件使用 实现思路 一、图形拆解 要实现的组件是一个 可配置的圆柱形液柱图组件,常用于展示比例进度,比如任务完成度、指标达成率等。把图拆成最小单元然后拼接起来&#x…

详解 rzsz 工具:Windows 与 Linux 文件传输

(Linux之软件包管理器(CentOS系统) —— yum-CSDN博客)rzsz工具之前我在这篇文章中介绍过,现在重新详细介绍一下该工具。rzsz 是一个用于在 Windows 和 Linux 系统之间传输文件的工具集,通常通过终端模拟器…

网络编程1(UDP)

网络编程套接字(socket api) 了解了网络的一些概念,接下来就要进行网络中的跨主机通信,了解网络中的一些API,这里谈到的API都是针对传输层进行的,这是因为我们编写的代码是在应用层,而传输层就…

【电机】定点线性映射

这是一个定点数线性映射的问题,通常用于将浮点型的物理量(如速度、位置、扭矩)转换为嵌入式系统中使用的整型数据格式,便于通过 CAN 总线或其它通信协议发送给电机控制器。 我们来逐步解析这个过程,并以“速度”为例说…

Spring Cloud 微服务(远程调用与熔断机制深度解析)

📌 摘要 在微服务架构中,服务之间的远程调用是构建分布式系统的核心环节。然而,随着服务数量的增加和网络复杂度的提升,调用失败、延迟高、异常等问题变得越来越频繁。 为此,Spring Cloud 提供了强大的远程调用组件 …

electron-vite 抽离config.js

1、将config.js 放到resources下的config目录下 module.exports {url: http://192.168.1.17:8000,wsUrl: ws://192.168.1.17:8000, }2、在preload.js 暴露读取API src/preload/index.js(或你的preload入口) const fs require(fs); const path require(path);function getCo…

MySQL Undo Log 深度解析:事务回滚与MVCC的核心功臣

引言 作为MySQL的“数据后悔药”和“历史版本档案馆”,Undo Log(回滚日志)在事务处理和并发控制中扮演着至关重要的角色。今天咱们就从底层原理出发,结合实际场景,把Undo Log的“里里外外”说个明白! 一、…

gin如何返回html

✅ 方法一&#xff1a;直接返回 HTML 字符串 这种方式适合简单场景&#xff0c;比如返回一段固定的 HTML 内容。 package mainimport "github.com/gin-gonic/gin"func main() {r : gin.Default()r.GET("/html", func(c *gin.Context) {htmlContent : <…

Insulation score算法解读

Insulation score&#xff08;IS&#xff09;&#xff0c;俗称绝缘分数&#xff0c;用于计算识别三维基因组中的拓扑关联结构域TAD。 首次提出是在&#xff1a; 1&#xff0c;概念 为染色体上的基因组区间分配‘绝缘评分’的方法。该评分用于衡量跨越每个区间的所有相互作用的…

电脑系统重装有什么用?

一、解决系统软件问题 1、修复系统崩溃与错误 系统出现频繁蓝屏、死机、启动失败或程序运行异常&#xff08;如驱动冲突、系统文件损坏&#xff09; 2、清除恶意软件与病毒 电脑中病毒或恶意软件难以通过杀毒软件彻底清除 二、优化系统性能 1、清理冗余文件与设置 长时间…

js随机生成一个颜色

在 JavaScript 中&#xff0c;随机生成颜色有多种方式&#xff0c;以下是最常见的几种实现方法&#xff1a; 方法1&#xff1a;生成随机十六进制颜色&#xff08;如 #FFFFFF&#xff09; 这是最常见的方式&#xff0c;生成格式为 #RRGGBB 的颜色字符串&#xff1a; function…

运维打铁: 服务器防火墙策略配置与管理

文章目录 思维导图一、防火墙基础1. 防火墙概念2. 常见防火墙类型3. 防火墙工作原理 二、策略配置1. 规则制定原则2. 端口与服务开放Linux 系统&#xff08;以 iptables 为例&#xff09;Windows 系统&#xff08;以 Windows 防火墙为例&#xff09; 3. IP 地址过滤允许特定 IP…