Linux中硬链接文件和软链接文件有什么区别?

Linux中硬链接文件和软链接文件有什么区别?,第1张

linux系统中链接文件分为硬链接和软链接(软链接也叫符号链接)。硬链接和软链接都是指向文件的一种方式,但两者有不同的地方,主要有以下不同:

1.硬链接是创建一个指向block的inode,有防止误删除的功能。因为删除一个文件,实际上是删除inode信息,切断了inode与block之间的联系。当给一个文件做了硬链接之后,删除文件时,只会减少文件的链接数,当链接数为0时,才会彻底删除该文件。

软链接类似windows系统的快捷方式,是一个完整的文件,有自己的inode和block,block的内容就是原文件的文件名。当原文件删除后,软链接就失效了,没有防止误删除的功能。

2.文件的大小不一样。由于硬链接是指向原文件的block,所以硬链接的文件大小和原文件大小是一致的。而软链接是新的文件,block里是原文件的的文件名,所以软链接文件的大小一般是4k,即一个block的大小。

3.硬链接不能给目录做,不能跨分区做。软链接则都可以。

创建硬链接命令:

ln

file

filenew

#file为原文件名,filenew为新文件名。

创建软链接命令:

ln

-s

file

filenew

#file为原文件名,filenew为新文件名。

软链接是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 : 显示版本

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

选择参数

通过ln -s创建链接时,必须使用绝对路径: ln -s /home/a /usr/local/bin/b,否则会出错,Linux符号连接的层数过多


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

原文地址:https://54852.com/yw/8485347.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存