我的Linux生涯之文件链接
ln
linux下的链接文件有两种:
一种是类似于windows的快捷方式功能的文件,可以让你快速连接到目标文件或者目录;
另一种是通过文件系统的inode链接来产生新文件名,而不是产生新文件,这种称为硬链接(hard link)
-----------------------------------------------------------------------------------------------------------------------------------------
Ps:每个文件都会占用一个 inode ,文件内容由 inode 的记录来指向;
想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。
hard link(硬链接/实际链接)
也就是说,其实文件名只与目录有关,但是文件内容则与 inode 有关。那么想一想, 有没有可能有多个档名对应到同一个 inode 号码呢?有的!那就是 hard link 的由来。 所以简单的说:hard link 只是在某个目录下新增一笔档名链接到某 inode 号码的关连记录而已。
举个例子来说,假设我系统有个 /root/crontab 他是 /etc/crontab 的实体链接,也就是说这两个档名连结到同一个 inode , 自然这两个文件名的所有相关信息都会一模一样(除了文件名之外)。实际的情况可以如下所示:
[root@www ~]# ln /etc/crontab . <==创建实体链接的命令
[root@www ~]# ll -i /etc/crontab /root/crontab
1912701 -rw-r--r-- 2 root root 255 Jan 6 2007 /etc/crontab
1912701 -rw-r--r-- 2 root root 255 Jan 6 2007 /root/crontab
上图的意思是,你可以透过 1 或 2 的目录之 inode 指定的 block 找到两个不同的档名,而不管使用哪个档名均可以指到 real 那个 inode 去读取到最终数据!那这样有什么好处呢?最大的好处就是『安全』!如同上图中, 如果你将任何一个『档名』删除,其实 inode 与 block 都还是存在的! 此时你可以透过另一个『档名』来读取到正确的文件数据喔!此外,不论你使用哪个『档名』来编辑, 最终的结果都会写入到相同的 inode 与 block 中,因此均能进行数据的修改哩!
hard link的限制:
不能跨越文件系统;
不能连接到目录。
Ps:不能跨 Filesystem 还好理解,那不能 hard link 到目录又是怎么回事呢?这是因为如果使用 hard link 链接到目录时, 链接的数据需要连同被链接目录底下的所有数据都创建链接,举例来说,如果你要将 /etc 使用实体链接创建一个 /etc_hd 的目录时,那么在 /etc_hd 底下的所有档名同时都与 /etc 底下的檔名要创建 hard link 的,而不是仅连结到 /etc_hd 与 /etc 而已。 并且,未来如果需要在 /etc_hd 底下创建新文件时,连带的, /etc 底下的数据又得要创建一次 hard link ,因此造成环境相当大的复杂度。 所以啰,目前 hard link 对于目录暂时还是不支持的啊!
symbolic link (符号链接,也就是快捷方式)
而这个所谓的快捷方式是就是在创建一个独立的文件,而这个文件会让数据的只想它所链接的那个文件的文件名。当源文件被删除后,这个“快捷方式”将会失效。
Ps:当你使用“ln -s /bin /root/bin”时,你在/root/bin内的操作实际是在/bin中的操作,所以这里要注意
转载于:https://blog.51cto.com/linuxengineer/1340552
我的Linux生涯之文件链接相关推荐
- Linux下多文件链接执行及调试技术
链接及调试 一.多文件链接的方法 1.多文件链接的一般方法 2.多文件链接的makefile方法 二.调试 1.安装gdb的命令: 2.单进程.单线程基础调试命令 3.基础调试 一.多文件链接的方法 ...
- 【Linux】创建文件链接(ln | 符号链接和硬链接)
摘要 本文将介绍如何在 Linux 中为文件创建硬练级和符号(软)链接,并探讨两者之间的相同和不同之处. 引言 符号链接与 Windows 中的快捷方式很像.Windows 中的快捷方式是一个带箭头的 ...
- linux 链接 文件,聊聊 Linux 里的文件链接
在 Linux 中,可以对文件生成链接.链接有两种,一种是软链接,一种是硬链接.这两种链接分别有什么作用呢?今天我们就来聊一聊. 如何生成链接? ln -s [原文件] [目标文件] #对原文件生成一 ...
- linux取消头文件链接,【原创】Linux下编译链接中常见问题总结
前言 一直以来对Linux下编译链接产生的问题没有好好重视起来,出现问题就度娘一下,很多时候的确是在搜索帮助下解决了BUG,但由于对原因不求甚解,没有细细研究,结果总是在遇到在BUG时弄得手忙脚乱得. ...
- 【Android 逆向】Linux 文件分类 ( 普通文件 | 目录文件 | 链接文件 | 字符设备文件 | 管道文件 | 块设备文件 )
文章目录 一.Linux 文件分类 1.普通文件 2.链接文件 3.字符设备文件 4.管道文件 5.块设备文件 一.Linux 文件分类 Linux 文件分类 : " - " 表示 ...
- linux 的文件软链接隐藏,Linux inode及硬链接软链接详解
Linux inode及硬链接软链接详解 York • 2020 年 09 月 28 日 Loading... 操作系统的文件数据除了实际内容之外,通常含有非常多的属性,例如 `Linux`操作系统的 ...
- Linux 文件系统 软/硬链接文件
文件系统 文件系统就是磁盘上管理文件的系统,一个硬盘有两个分区,一个是swap交换分区,是当内存不够用时将这个分区当做交换内存来使用:一个是filesystem文件系统分区,用来存储管理文件的: 文件 ...
- 【Linux】什么是链接文件及其分类
背景 链接文件时Linux文件系统的一个优势,如需要在系统上维护同一文件的两份或多分副本,除了保存多分单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法,这种虚拟的副本就称为链 ...
- 在Linux中怎样搜索链接文件,如何使用find命令在Linux中查找文件
原标题:如何使用find命令在Linux中查找文件 Linux Find命令是Linux系统管理员工具库中最强大的工具之一. Find是一个命令行实用程序,它允许您根据用户给定的表达式搜索目录层次结构 ...
最新文章
- android上方导航条跳转页面,《成为大前端》系列 7. 多页面、页面跳转和Navigation模块...
- mockmvc get请求 tm的 一直404_面试:SpringMVC在接收到请求后的调用细节是什么?
- juniper接口打环测试
- ACM/OI中C++常用优化(实用/调试/技巧)代码(语法)
- SpringCloud个人笔记-01-Eureka初体验
- H3C 单区域OSPF配置示例二
- TensorFlow的一些基本概念
- 测试人员的系统性思维
- Markup.h 和 Markup.cpp 文件(下一篇)内容,直接复制创建就行了
- 聚类分析 距离 matlab,matlab聚类分析_matlab
- LaTeX:使用bib插入文献
- 删除的数据还能恢复吗?硬盘数据恢复,试试这2个方法
- c语言查表法编程流水灯,通过查表法的流水灯汇编程序
- 《青山翠影》玖 独行的时代 | 去程归程
- 遇到 腾讯云 由于连接云服务器超时 的问题
- 首期InnoSpace国际创业集训营举办DemoDay
- android 点击提示音,Android获取手机默认模式/提示音/响铃
- 睢宁 计算机学校,江苏睢宁中等专业学校2021年招生录取分数线
- matlab 在线帮助,matlab中文帮助文档【荐】.pdf
- 计算机辅助设计高级绘图员技能鉴定试题(电路类),计算机辅助设计高级绘图员技能鉴定试题(电路类)1...
热门文章
- SAP LSMW 导入物料主数据报错 - You have not fully maintained the descriptions - 之分析
- 科普丨莫拉维克悖论(人工智能中最重要的发现之一)
- UnidentifiedImageError: cannot identify image file <_io.BufferedReader name=‘D:\\Download\
- 自组织映射网络(SOM)如何解决TSP问题
- print(__doc__)
- numpy如何生成随机数
- 牛津大学名誉教授Colin Blakemore:大脑是如何计算的?
- MIT:机器学习预测2018世界杯冠军
- 邬贺铨:工业物联网的技术与前景
- 程序员颈椎病康复秘籍