Linux 软硬链接特点与区别
ln [-sf] 源文件 目标文件
参数:
-s:如果ln不加任何参数就进行连接,那么就是硬链接,-s就是符号连接
-f:如果目标文件存在时,就主动将目标文件直接删除后再建立
参数:
-s:如果ln不加任何参数就进行连接,那么就是硬链接,-s就是符号连接
-f:如果目标文件存在时,就主动将目标文件直接删除后再建立
硬链接或实际连接:在某个目录下新增的一个文件的关联数据(无法做目录的连接)
---->硬链接文件其实就是真实目录的关联数据(硬链接与真实目录都指向同一个inode,但不会用掉inode与磁盘空间),从这两个地方都可以正确无误的修改数据;删除其中的任何一个,另一个仍能读取到正确的元数据。
---->硬链接文件其实就是真实目录的关联数据(硬链接与真实目录都指向同一个inode,但不会用掉inode与磁盘空间),从这两个地方都可以正确无误的修改数据;删除其中的任何一个,另一个仍能读取到正确的元数据。
硬链接的限制:①不能跨文件系统②不能连接目录
符号连接(快捷方式):只是利用文件来作为指向的动作
---->当源文件被删除后,符号连接无法打开文件,会显示“无法打开某文件”,但是由于符号连接所建立的文件为一个独立的新文件,会占用掉inode与块。
---->当源文件被删除后,符号连接无法打开文件,会显示“无法打开某文件”,但是由于符号连接所建立的文件为一个独立的新文件,会占用掉inode与块。
[root@localhost ln]# pwd /usr/ln [root@localhost ln]# ll 总计 0 # 测试1: # 分别建立源文件(skyex)、硬链接(sHLink)、软链接(sSLink) [root@localhost ln]# touch skyex [root@localhost ln]# ln skyex sHLink [root@localhost ln]# ln -s skyex sSLink [root@localhost ln]# ll 总计 0 -rw-r--r-- 2 root root 0 03-31 16:56 sHLink -rw-r--r-- 2 root root 0 03-31 16:56 skyex lrwxrwxrwx 1 root root 5 03-31 16:56 sSLink -> skyex # 测试2: # 硬链接不允许链接目录和文件系统 # 软链接可以链接目录和文件系统 [root@localhost ln]# ln /usr/ln /tmp ln: "/usr/ln" : 不允许将硬链接指向目录 [root@localhost ln]# ln -s /usr/ln /tmp [root@localhost ln]# ll /tmp |grep ln lrwxrwxrwx 1 root root 7 03-31 16:58 ln -> /usr/ln # 测试3: # 源文件、软链接、硬链接更改任意一个文件的内容,其他的文件内容同时改变 # ①更改源文件的内容 [root@localhost ln]# cat>skyex<<eof > this is main > eof [root@localhost ln]# cat sHLink sSLink this is main this is main # ②更改硬链接的内容 [root@localhost ln]# cat>sHLink<<eof > this is sHLink > eof [root@localhost ln]# cat skyex sSLink this is sHLink this is sHLink # ③更改软链接的内容 [root@localhost ln]# cat>sSLink<<eof > this is sSLink > eof [root@localhost ln]# cat skyex sSLink this is sSLink this is sSLink # 测试4: # 删除软硬链接,对源文件没有影响 [root@localhost ln]# rm -rf sHLink sSLink [root@localhost ln]# cat skyex this is sSLink # --->重建 [root@localhost ln]# ln skyex sHLink [root@localhost ln]# ln -s skyex sSLink [root@localhost ln]# ll 总计 8 -rw-r--r-- 2 root root 15 03-31 17:01 sHLink -rw-r--r-- 2 root root 15 03-31 17:01 skyex lrwxrwxrwx 1 root root 5 03-31 17:03 sSLink -> skyex # 测试5: # 删除源文件,硬链接可以正常读取数据;软链接无法正常读取数据 [root@localhost ln]# rm -f skyex [root@localhost ln]# ll 总计 4 -rw-r--r-- 1 root root 15 03-31 17:01 sHLink lrwxrwxrwx 1 root root 5 03-31 17:03 sSLink -> skyex [root@localhost ln]# cat sHLink this is sSLink [root@localhost ln]# cat sSLink cat: sSLink: 没有那个文件或目录 [root@localhost ln]# ll 总计 4 -rw-r--r-- 1 root root 15 03-31 17:01 sHLink lrwxrwxrwx 1 root root 5 03-31 17:03 sSLink -> skyex