软链接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。
具体用法是: ln -s 源文件 目标文件
当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在其它的 目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。
例如:
这样我们就对/usr/bin目录下的mysql命令创建了软连接 。
创建软连接
ln -s [源文件或目录] [目标文件或目录]
例如:当前路径创建test引向/var/www/test 文件夹
创建/var/test 引向/var/www/test 文件夹
删除软连接
和删除普通的文件是一样的,删除都是使用 rm 来进行 *** 作
例:
删除test
修改软链接
ln –snf [新的源文件或目录] [目标文件或目录]
这将会修改原有的链接地址为新的地址
例如:
创建一个软链接
修改指向新的路径
常用参数:
-f : 链结时先将与 dist 同档名的档案删除
-d : 允许系统管理者硬链结自己的目录
-i : 在删除与 dist 同档名的档案时先进行询问
-n : 在进行软连结时,将 dist 视为一般的档案
-s : 进行软链结(symbolic link)
-v : 在连结之前显示其档名
-b : 将在链结时会被覆写或删除的档案进行备份
-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾
-V METHOD : 指定备份的方式
--help : 显示辅助说明
--version : 显示版本
为解决文件的共享使用,Linux系统引入了两种链接:硬链接和软链接。在Linux中,元数据中的inode号才是文件的唯一标识而非文件名,文件内容要通过inode号来寻找,犹如交通指示牌一样,指示着数据找寻的方向。硬链接(Hard Link)
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,就是对应一个文件,可以理解成一个文件有几个别名。
用法不同:
软链接可以理解成快捷方式,也清楚知道原文件在哪里。它和Windows下的快捷方式的作用是一样的,和Windows一样,删除源文件,快捷方式也就无法使用了。
硬链接可以看成一个备份,但并没有增加空间,因为文件就一个,这种可以防止源文件删除后不能使用问题同时也有局限性,不能对目录和跨文件系统使用。
语法格式(ln):
硬链接:ln 源文件 链接名
软链接:ln -s 源文件 链接名
注意:链接的源文件路径要写绝对路径,否则会报错。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)