news 2026/6/26 1:31:50

硬链接(ln) vs 复制(cp)的详细区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
硬链接(ln) vs 复制(cp)的详细区别

🔥作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生,研究方向无线联邦学习
🎬擅长领域:驱动开发,嵌入式软件开发,BSP开发
❄️作者主页:一个平凡而乐于分享的小比特的个人主页
✨收录专栏:Linux,本专栏目的在于,记录学习Linux操作系统的总结
欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

硬链接(ln) vs 复制(cp)的详细区别

很多初学者容易混淆这两个概念。让我详细解释:

一、核心本质区别

硬链接(ln)

  • 多个文件名指向同一份数据
  • 创建的是新的目录条目,指向相同的inode
  • 不占用额外的磁盘空间(除了目录条目本身)
  • 所有链接都是平等的,没有"原始"和"副本"之分

复制(cp)

  • 创建全新的独立文件
  • 分配新的inode和数据块
  • 占用与原文件相同的磁盘空间
  • 有明确的"源文件"和"目标文件"之分

二、详细对比表格

特性硬链接(ln)复制(cp)
数据存储共享同一份数据独立的重复数据
磁盘空间几乎不占用额外空间占用等量空间
inode号与源文件相同新的不同inode
修改同步✅ 自动同步(修改一处,所有链接都变)❌ 独立修改
删除影响删除任一链接不影响其他,直到最后一个链接删除任一文件不影响其他
跨文件系统❌ 不允许✅ 允许
链接目录❌ 不允许(特殊情况除外)❌ 不是链接概念
性能创建快,几乎不耗资源创建慢,需要复制数据
文件大小显示与原文件相同显示与原文件相同

三、直观示例演示

# 创建测试环境mkdirtest_dir&&cdtest_direcho"Hello World">original.txt# 1. 创建硬链接lnoriginal.txt hardlink.txt# 2. 创建复制cporiginal.txt copy.txt# 查看结果ls-li

输出示例:

1234567 -rw-r--r-- 2 user group 12 Jan 1 10:00 hardlink.txt 1234567 -rw-r--r-- 2 user group 12 Jan 1 10:00 original.txt 1234568 -rw-r--r-- 1 user group 12 Jan 1 10:00 copy.txt

↑ 注意:hardlink.txt和original.txt的inode号相同(1234567),链接计数为2

测试显示:


四、修改测试

# 修改原始文件echo"Modified content">original.txt# 查看效果echo"硬链接内容:"cathardlink.txt# 显示 "Modified content"(已同步)echo"复制文件内容:"catcopy.txt# 仍然显示 "Hello World"(未同步)

测试结果:


五、删除测试

# 删除原始文件rmoriginal.txt# 检查剩余文件echo"删除后硬链接内容:"cathardlink.txt# 仍然可以访问!显示 "Modified content"echo"删除后复制文件内容:"catcopy.txt# 仍然可以访问!显示 "Hello World"# 查看inode信息ls-li hardlink.txt copy.txt

测试结果:


六、实际应用场景对比

适合使用硬链接的情况:

  1. 备份但节省空间
# 备份大文件但不重复占用空间ln/data/bigfile.iso /backup/bigfile_backup.iso# 两个位置访问同一份数据,不占双倍空间
  1. 版本快照
# 创建配置文件的"快照"cp-l config.cfg config.cfg.backup# 修改config.cfg,backup保留原始版本

​ 3.多个程序需要相同数据

# 多个用户需要读取同一大文件ln/shared/data.db ~user1/data.dbln/shared/data.db ~user2/data.db

适合使用复制的情况:

  1. 需要独立修改
cptemplate.conf my_config.conf# 修改my_config.conf不影响template.conf

2.跨文件系统移动

cp/dev/sda1/file.txt /dev/sdb1/backup/# 硬链接无法跨文件系统

​ 3.创建可安全删除的副本

cpimportant.txt temp_working.txt# 可以随意修改temp_working.txt,不影响原始文件

七、技术细节深入

文件系统层面

硬链接: original.txt -> inode 1000 -> 数据块 hardlink.txt -> inode 1000 -> 相同数据块 (链接计数:2) 复制: original.txt -> inode 1000 -> 数据块A copy.txt -> inode 1001 -> 数据块B(内容相同) (链接计数:各自为1)

扩展知识:查看更详细信息

# 查看完整的文件信息statoriginal.txtstatcopy.txt# 结果会显示:# File: original.txt# Size: 12 Blocks: 8 IO Block: 4096 regular file# Device: fd00h/64768d Inode: 2097508 Links: 2# Access: (0664/-rw-rw-r--) Uid: ( 1000/ tjf) Gid: ( 1000/ tjf)# ...# 查看inode使用情况df-i.# 查看inode总数和使用情况# 查看文件类型fileoriginal.txt# ASCII textfile/bin/ls# ELF 64-bit LSB executable

测试结果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 4:37:40

AI大模型开发必备!收藏这份7阶段完整学习路线,助你轻松入门高薪领域_2025全网最详细的AI大模型学习路线_大模型学习路线

2025年AI大模型应用爆发,掌握相关技术变得至关重要。作者团队耗时6个月打造了涵盖7大阶段的完整学习路线,从大模型基础、RAG架构、Agent开发到多模态应用,循序渐进。掌握到第四阶段即可胜任市场上大多数大模型相关岗位。完整资源已上传CSDN&a…

作者头像 李华
网站建设 2026/6/15 15:13:02

基于SpringBoot + Vue的智慧仓库系统

文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…

作者头像 李华
网站建设 2026/6/18 20:37:11

超融合平台怎么帮助中小企业快速实现工业数字化转型?

在工业数字化转型的深水区,超融合系统正从一种IT基础设施演变为推动制造业智能化、绿色化变革的核心引擎。它通过将计算、存储与网络资源深度融合于统一的软件定义架构中,打破了传统IT系统“烟囱式”部署的壁垒,为工业场景提供了高弹性、高可…

作者头像 李华
网站建设 2026/6/18 9:22:23

PDF to IMG v1.0:批量PDF转图片工具

PDF to IMG 1.0 是一款专为批量处理PDF文件而设计的轻量级工具,体积仅2.94MB,无需安装即可使用。它支持将多个PDF文件快速转换为JPG或PNG格式图片,操作简单,完全免费,且不需注册或联网。这款工具旨在满足用户对高效PDF…

作者头像 李华
网站建设 2026/6/18 17:24:38

绿色工厂申报指南:指标简化+重点行业倾斜+流程速览(涵盖最新要求)

绿色工厂是工信部自2017年起开展的全国性评选活动,旨在完善绿色制造体系,助力工业领域实现碳达峰、碳中和目标 。 2024年2月5日工业和信息化部等七部门发布 《关于加快推动制造业绿色化发展的指导意见》指出力争 到2030年各级绿色工厂产值占制造业总产值…

作者头像 李华