导航:首页 > 文件类型 > linux怎样打开链接文件

linux怎样打开链接文件

发布时间:2024-12-30 01:30:56

1. linux软链接要怎么看内容

有可能是你来的软链接指向了源一个无效的地址。正常情况下是可以直接打开或查看的。


请使用以下命令查看软连接的指向:

➜~ls-l
total2784
lrwxr-xr-x1adminstaff571315:05file1.lnk->file1


然后直接打开原来的文件,试试能不能打开。

2. 【技术分享】Linux实体链接与符号链接

在 Linux 系统中,链接文件主要有两种:一种是类似于 Windows 系统中的快捷方式,可以快速链接到目标文件(或目录);另一种是通过文件系统的 inode 链接来产生新文件名,而不是创建新文件,这种称为实体链接(hard link)。

· Hard Link(实体链接,硬式链接或实际链接):

每个文件都会占用一个 inode,文件内容由 inode 的记录来指向。想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。

也就是说,文件名只与目录有关,而文件内容则与 inode 有关。那么,有没有可能有多个文件名对应到同一个 inode 号码呢?有的!这就是 hard link 的由来。简单地讲,hard link 只是在某个目录下新增一笔文件名链接到某个 inode 号码的关联记录而已。

举个例子来说,假设系统中有 /root/crontab 是 /etc/crontab 的实体链接,也就是说这两个文件名链接到同一个 inode,自然这两个文件名的所有相关信息都会一模一样(除了文件名之外)。

你可以发现两个文件名都链接到 34474855 这个 inode 号码,所以是否文件的权限/属性完全一样呢?因为这两个“文件名”其实是一模一样的“文件”啦!而且你也会发现第二个字段由原本的 1 变成 2 了!那个字段称为“链接”,这个字段的意义为:“有多少个文件名链接到这个 inode 号码”的意思。如果将读取到正确数据的方式画成示意图,就类似如下画面:

上图的意思是,你可以通过 1 或 2 的目录之 inode 指定的 block 找到两个不同的文件名,而不管使用哪个文件名都可以指到 real 那个 inode 去读取到最终数据!那这样有什么好处呢?最大的好处就是“安全”!如同上图中,如果你将任何一个“文件名”删除,其实 inode 与 block 都还是存在的!此时你可以通过另一个“文件名”来读取到正确的文件数据喔!此外,不论你使用哪个“文件名”来编辑,最终的结果都会写入到相同的 inode 与 block 中,因此均能进行数据的修改。

一般来说,使用 hard link 设置链接文件时,磁盘的空间与 inode 的数目都不会改变!我们还是由图 7.2.1 来看,由图中可以知道,hard link 只是在某个目录下的 block 多写入一个关联数据而已,既不会增加 inode 也不会耗用 block 数量。

Tips hard link 的制作中,其实还是可能会改变系统的 block 的,那就是当你新增这笔数据却刚好将目录的 block 填满时,就可能会新加一个 block 来记录文件名关联性,而导致磁盘空间的变化!不过,一般 hard link 所用掉的关联数据量很小,所以通常不会改变 inode 与磁盘空间的大小。

其实我们也能够知道,事实上 hard link 应该仅能在单一文件系统中进行的,应该是不能跨文件系统才对!因为就是在同一个 filesystem 上嘛!所以 hard link 是有限制的:

· 不能跨 Filesystem;

· 不能 link 目录。

不能跨 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(符号链接,亦即是捷径)

相对于 hard link,Symbolic link 就好理解多了,基本上,Symbolic link 就是在创建一个独立的文件,而这个文件会让数据的读取指向它 link 的那个文件的文件名!由于只是利用文件来做为指向的动作,所以,当来源文件被删除之后,symbolic link 的文件会“开不了”,会一直说“无法打开某文件!”。实际上就是找不到原始“文件名”而已啦!

举例来说,我们先创建一个符号链接文件链接到 /etc/crontab 去看看:

由上表的结果我们可以知道两个文件指向不同的 inode 号码,当然就是两个独立的文件存在!而且链接文件的重要内容就是它会写上目标文件的“文件名”,你可以发现为什么上表中链接文件的大小为 12 Bytes 呢?因为箭头(-->)右边的文件名“/etc/crontab”总共有 12 个英文,每个英文占用 1 个 Bytes ,所以文件大小就是 12Bytes了!

关于上述的说明,我们以如下图示来解释:

由 1 号 inode 读取到链接文件的内容仅有文件名,根据文件名链接到正确的目录去取得目标文件的 inode,最终就能够读取到正确的数据了。你可以发现的是,如果目标文件(/etc/crontab)被删除了,那么整个环节就会无法继续进行下去,所以就会发生无法通过链接文件读取的问题了!

这里还是得特别留意,这个 Symbolic Link 与 Windows 的捷径可以给它划上等号,由 Symbolic link 所创建的文件为一个独立的新的文件,所以会占用掉 inode 与 block。

阅读全文

与linux怎样打开链接文件相关的资料

热点内容
如何修改数据表的数据 浏览:476
找出取走了哪个数据 浏览:229
做app除了app还有哪些消费 浏览:276
哪个网站能查外国赛鸽脚环 浏览:134
win10更新后原来的系统文件 浏览:852
win10开机代码错误怎么解决 浏览:931
js控制hr标签长度 浏览:551
win10删除设置里的游戏吗 浏览:893
win10无法视频播放器 浏览:989
未来宽带初始密码 浏览:517
化妆品宣传单是word做的吗 浏览:237
gaussian文件 浏览:19
u盘里文件怎样存入d盘 浏览:840
我国文娱行业数据怎么收集 浏览:419
福建短租房app哪个好 浏览:429
出租药师证书去哪个网站 浏览:148
怎么打开py配置文件并修改 浏览:530
pdf格式的文件如何拷贝出某一页 浏览:495
手机qq邮箱再添加一个文件夹 浏览:650
wp桌面文件夹删除 浏览:80

友情链接