网站首页 > 文章中心 > 其它

linux下ln命令

作者:小编 更新时间:2023-09-04 12:14:11 浏览量:170人看过

Linux 硬链接和软链接的区别

为解决文件的共享使用,Linux系统引入了两种链接:硬链接和软链接.在Linux中,元数据中的inode号才是文件的唯一标识而非文件名,文件内容要通过inode号来寻找,犹如交通指示牌一样,指示着数据找寻的方向.

硬链接(Hard Link)

linux下ln命令-图1

A和B的硬链接,则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的.如果删除其中一个,对另外一个没有任何影响.每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收.

注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块只有在inode节点链接数减少为0的时候才会被系统回收.

软链接(Soft Link)

A是B的软链接,A的目录项中的inode节点号与B的目录项中的节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块.但是A的数据块中存放的只是B的路径名.A和B之间是主从关系,如果B被删除了,A依然存在,但指向的是一个无效的链接.

Linux中软链接和硬链接的区别和联系:

概念不同:

软链接可以理解成快捷方式,和原文件的inode号不一样,它和Windows下的快捷方式的作用是一样的,软链接数据块中记录的亦是相对路径指向.

硬链接和原文件对应一个inode,就是对应一个文件,可以理解成一个文件有几个别名.

用法不同:

linux下ln命令-图2

软链接可以理解成快捷方式,也清楚知道原文件在哪里.它和Windows下的快捷方式的作用是一样的,和Windows一样,删除源文件,快捷方式也就无法使用了.

硬链接可以看成一个备份,但并没有增加空间,因为文件就一个,这种可以防止源文件删除后不能使用问题;同时也有局限性,不能对目录和跨文件系统使用.

语法格式(ln):

硬链接:ln 源文件 链接名

软链接:ln -s 源文件 链接名

注意:链接的源文件路径要写绝对路径,否则会报错.

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

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

linux下ln命令-图3

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

linux查看文件对应的inode号

使用find查找一下:

查找结果如下:

/root/latest.tar.gz

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

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

查看一下文件latest.tar.gz

输出结果如下:

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

输出结果:

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

再来看一个文件

linux查看软链接

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

ln链接符原理如下:

Linux ln链接符原理图

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

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

创建软链接示例:

检查结果:

输出文件属性

linux创建软链接

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

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

输出文件属性:

linux创建硬链接

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

linux ln 连接命令怎么用?

①.、首先有一个目录dir, 执行ln -s dir dir_link 创建目录的软链接.

LINUX LN命令 怎么操作

ln

ln(link)

功能说明:连接文件或目录.

语法:ln [-bdfinsv][-S 字尾备份字符串][-V 备份方式][--help][--version][源文件或目录][目标文件或目录] 或 ln [-bdfinsv][-S 字尾备份字符串][-V 备份方式][--help][--version][源文件或目录...][目的目录]

补充说明:ln指令用在连接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中.若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息.

参数:

-b或--backup  删除,覆盖目标文件之前的备份.

-d或-F或--directory  建立目录的硬连接.

-f或--force  强行建立文件或目录的连接,不论文件或目录是否存在.

-i或--interactive  覆盖既有文件之前先询问用户.

-n或--no-dereference  把符号连接的目的目录视为一般文件.

-s或--symbolic  对源文件建立符号连接,而非硬连接.

-S字尾备份字符串或--suffix=字尾备份字符串  用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的字尾备份字符串是符号"~",您可通过"-S"参数来改变它.

-v或--verbose  显示指令执行过程.

-V备份方式或--version-control=备份方式  用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用"-S"参数变更,当使用"-V"参数备份方式指定不同备份方式时,也会产生不同字尾的备份字符串.

--help  在线帮助.

--version  显示版本信息.

这种问题网上的例子很多的,如果还有不明白,在网上自己多查查

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章