Linux连接文件那点事

什么是连接文件

将一个文件和另一个文件建立联系,分为硬链接和软连接(符号连接)。

硬链接

Linux中,所有的文件都有一个inode,这个东西就是文件的ID号,硬链接的方式就是通过这个inode来产生新的文件名来建立链接。举个例子就是一个人的名字是张三,小名是宝宝,笔名是李四,花名是王麻子,所以张三、李四、王麻子、宝宝都是这个人。硬链接有以下特点:

  1. 具有相同的inode的多个文件互为硬链接文件,创建硬链接相当于文件实体多了入口;
  2. 删除属于这个inode的文件时,只有将所有连接到这个inode的文件都删除,文件实体才会被删除;
  3. 硬链接不能夸文件系统(例如无法在U盘上创建一个硬链接);
  4. 修改任何一个文件,与这个文件硬链接的文件都会被修改
  5. 硬链接无法连接到目录

硬链接的建立命令:

bash 复制代码
ln [source] [name]

看这个实例吧:

我想建立一个以hello为源文件 hello1为目标的硬链接:

bash 复制代码
ln hello hello1

建立好之后:

可以看到,hello 和 hello1这两行第一列的数字都是一样的。这个数字就是inode。如果我再建立一个hello4:

软链接

也叫符号连接,作用类似创建快捷方式。需要注意:

  1. 软连接可以和目录连接;
  2. 软连接可以跨系统;
  3. 删除源文件后,软连接失效;
  4. 符号连接文件通过->来指示具体文件

创建软连接的方式和上面类似:

bash 复制代码
ln -s [source path] [name]

举个例子,执行下面的代码:

bash 复制代码
ln -s hello hello2
ln -s /home/yugit/hello hello3

有如下结果:

hello2和hello3都是软连接,区别是hello2是相对路径,hello3是绝对路径。在没有移动这两个连接之前,他们都是可以正常运行的:

但如果将这两个文件拷贝到另一个文件夹里:

会发现hello2变红了,hello3仍然是蓝色。运行时:

可以看到,hello2无法达到之前的效果了。因此,建立软连接必须使用绝对路径的源文件。

相关推荐
破-风2 小时前
linux的用法
linux·运维·服务器
涛ing5 小时前
32. C 语言 安全函数( _s 尾缀)
linux·c语言·c++·vscode·算法·安全·vim
__雨夜星辰__5 小时前
Linux 学习笔记__Day2
linux·服务器·笔记·学习·centos 7
大耳朵土土垚5 小时前
【Linux】日志设计模式与实现
linux·运维·设计模式
学问小小谢5 小时前
第26节课:内容安全策略(CSP)—构建安全网页的防御盾
运维·服务器·前端·网络·学习·安全
yaoxin5211236 小时前
第十二章 I 开头的术语
运维·服务器
ProgramHan6 小时前
1992-2025年中国计算机发展状况:服务器、电脑端与移动端的演进
运维·服务器·电脑
马立杰9 小时前
H3CNE-33-BGP
运维·网络·h3cne
云空10 小时前
《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
运维·人工智能·web安全·网络安全·开源·网络攻击模型·安全威胁分析
深度Linux10 小时前
Linux网络编程中的零拷贝:提升性能的秘密武器
linux·linux内核·零拷贝技术