Linux软链接和硬链接的区别之ln命令详解

Linux软链接和硬链接的区别之ln命令详解,第1张

1. 先来了解一下Linux数据是如何保存和查询的

对 *** 作系统来说,数据分为两种:1. 用户数据 (user data) 2.元数据 (metadata)。用户数据就是保存和记录文件的内容。比如一个1M的ppt文件,500K的txt文件。这都属于用户数据。这个文件总有属性吧,比如大小、修改时间、访问时间、创建时间、存储的位置(文件所在的inode)、文件创建者等等信息。这些属性信息或者理解为汇总信息,我们称它为元数据。一句话,用户数据是文件的真实内容,而元数据则是汇总信息。

在 Linux 中,元数据中的 inode 号(inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。

2. 查看文件对应的inode号

134474678 latest.tar.gz

linux查看文件对应的inode号

可以看出latest.tar.gz这个文件, inode 号是134474678,Linux查找读写该文件时,以为个inode号码为标识,而不是文件名。文件名类似于网站域名,仅仅是方便人类记忆。

也就是说, inode134474678有一个硬链接,它就是latest.tar.gz。

3. 根据inode号查找对应的文件

那么,问题来了,系统上有没有第二个文件,它的inode号码也是13447467。

使用find查找一下:

查找结果如下:

/root/latest.tar.gz

/root/latest2.tar.gz

linux根据inode号查找对应的文件

硬盘上真的有第二个文件它的inode号码也是134474678,像这种情况,我们认为inode134474678有两个硬链接。当然,这是本文作者提前准备好的。

为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。

4. 确认硬链接的数量

查看一下文件latest.tar.gz

输出结果如下:

-rwxr-xr-x. 2 root root 8743850 Oct 11 15:00 latest.tar.gz

请留意输出的结果中的数字2,表示该文件存在2个硬链接。

正常情况下,一个inode只有一个链接,如下例

输出结果:

-rw-r--r--. 1 root root 9 Nov 21 11:39 abc.txt

请留意输出的结果中的数字1,表示该文件只存在1个硬链接,默认情况下,文件都是只有一个硬链接的。

5. 查看软链接

再来看一个文件

lrwxrwxrwx. 1 root root 15 Sep 26 15:57 /dev/stdout ->/proc/self/fd/1

linux查看软链接

我们发现,/dev/stdout实际上指向另一个文件/proc/self/fd/1,这就是软链接。类似于Windows系统上的快捷方式。

6. 软链接与硬链接的区别

6.1 软链接特点

6.2 硬链接特点

ln链接符原理如下:

Linux ln链接符原理图

7. 创建文件的链接

Linux ln命令是一个非常重要而且常用命令,它用于为文件或者目录创建链接。

7.1 创建软链接

创建一个文件,用于演示软链接。

创建软链接示例:

检查结果:

输出文件属性

lrwxrwxrwx. 1 root root 8 Nov 26 17:48 soft123.txt ->soft.txt

linux创建软链接

可以看出这个文件指向当前目录soft.txt,配置成功。7.2 创建硬链接

创建一个文件,用于演示硬链接。

创建硬链接,没有使用选项

检查结果:

输出文件属性:

-rw-r--r--. 2 root root 0 Nov 26 17:47 hard123.txt

linux创建硬链接

留意以上输出数字2,表明该文件有2个副本。

8. 总结

ln命令可以创建文件的副本,也可以创建软链接。

自然对数的意思。

自然对数以常数e为底数的对数。记作lnN(N>0)。在物理学,生物学等自然科学中有重要的意义。一般表示方法为lnx。数学中也常见以logx表示自然对数。若为了避免与基为10的常用对数lgx混淆,可用“全写”㏒ex。

在1614年开始有对数概念,约翰·纳皮尔以及Jost Bürgi(英语:Jost Bürgi)在6年后,分别发表了独立编制的对数表,当时通过对接近1的底数的大量乘幂运算,来找到指定范围和精度的对数和所对应的真数,当时还没出现有理数幂的概念。

扩展资料:

LN的其他意思:

1、ln是linux中又一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。

2、李宁运动品牌缩写新的李宁LOGO,用Make The Change”做新口号,代替了原来的“一切皆有可能”李宁运动品牌发布新商标。

原LI-NING简称为LN。李宁品牌原有标识和“一切皆有可能”口号,将作为经典品牌资产另有适当的应用规划,而不是简单退出舞台。

3、LN是液氮的英文liquid nitrogen的缩写。

4、在元素周期表上镧系元素(Ln)占有一格位置,却拥挤着15个元素。其原子序数从57至71依次排列,它们是镧(La)、铈(Ce)、镨(Pr)、钕(Nd)、钷(Pm)、钐(Sm)、铕(Eu)、钆(Gd)、铽(Tb)、镝(Dy)、钬(Ho)、铒(Er)、铥(Tm,)、镱(Yb)和镥(Lu)。

5、表示断路器的额定电流。如ln=160A就表示该断路器的额定电流是160A。

6、LN在动漫中是指“轻小说”(light novel)的意思。同时还指动漫《死亡笔记》中的同人CP,即L&尼亚。ln还指插曲

7、表示断路器的额定电流。如ln=160A就表示该断路器的额定电流是160A。

8、Microsoft Excel 中 LN函数,返回一个数的自然对数。自然对数以常数项 e (2.71828182845904) 为底。

LN函数是EXP 函数的反函数。

参考资料:百度百科-LN

ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个不同的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less

-s 是代号(symbolic)的意思。

两点注意:

第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;

第二,ln的链接又 软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

如果你用ls察看一个目录时,发现有的文件后面有一个@的符号且文件或文件夹的颜色和别的不一样,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。

指令详细说明:

指令名称 : ln

使用权限 : 所有使用者

使用方式 : ln [options] source dist,其中 option 的格式为 :

[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]

[--help] [--version] [--]

说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档 案系统中,而软连结却可以跨越不同的档案系统。

ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。

不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

-f : 链结时先将与 dist 同档名的档案删除

-d : 允许系统管理者硬链结自己的目录

-i : 在删除与 dist 同档名的档案时先进行询问

-n : 在进行软连结时,将 dist 视为一般的档案

-s : 进行软链结(symbolic link)

-v : 在连结之前显示其档名

-b : 将在链结时会被覆写或删除的档案进行备份

-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾

-V METHOD : 指定备份的方式

--help : 显示辅助说明

--version : 显示版本

范例 :

将档案 yy 产生一个 symbolic link : zz

1

ln -s yy zz

将档案 yy 产生一个 hard link : zz

1

ln yy xx

PS:如果想要删除链接,则像普通文件一样直接rm 链接名称即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7327359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存