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无法达到之前的效果了。因此,建立软连接必须使用绝对路径的源文件。

相关推荐
软件技术员5 分钟前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
哎呦喂-ll16 分钟前
Linux进阶:环境变量
linux
耗同学一米八18 分钟前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
Rverdoser18 分钟前
Linux环境开启MongoDB的安全认证
linux·安全·mongodb
PigeonGuan28 分钟前
【jupyter】linux服务器怎么使用jupyter
linux·ide·jupyter
一条晒干的咸魚44 分钟前
【Web前端】创建我的第一个 Web 表单
服务器·前端·javascript·json·对象·表单
东华果汁哥1 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
咖喱鱼蛋1 小时前
Ubuntu安装Electron环境
linux·ubuntu·electron
ac.char1 小时前
在 Ubuntu 系统上安装 npm 环境以及 nvm(Node Version Manager)
linux·ubuntu·npm