linux的硬链接和软链接
链接方式有两种:硬链接和软链接
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。
(1)硬链接:多个文件名指向同一索引节点
作用:允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。
其实一个硬链接就是一个文件的一个别名,只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
硬链接文件有两个限制
1)、不允许给目录创建硬链接
2)、只有在同一文件系统中的文件之间才能创建硬链接
ln 命令为现有文件创建新的硬链接。该命令懂得第一个参数为现有文件,后面可以跟一个或者多个额外的硬链接。硬链接可以处在任何位置上。
在/tmp目录中为现有的文件newfile.text创建硬链接mewfile-link1.text
[[email protected] ~]# cd /tmp
[[email protected] tmp]# touch newfile.text
[[email protected] tmp]# ln newfile.text /tmp/newfile-link.text
[[email protected] tmp]# ll newfile.text /tmp/newfile-link.text
-rw-r--r--. 2 root root 0 Nov 16 04:04 newfile.text
-rw-r--r--. 2 root root 0 Nov 16 04:04 /tmp/newfile-link.text
即使原来文件删除,只要有一个硬链接存在,该文件的内容就依然可读
[[email protected] tmp]# echo ‘hello,world‘ > newfile.text
[[email protected] tmp]# rm -f newfile.text
[[email protected] tmp]# ll /tmp/newfile-link.text
-rw-r--r--. 1 root root 12 Nov 16 04:10 /tmp/newfile-link.text
[[email protected] tmp]# cat /tmp/newfile-link.text
hello,world
(2)软链接
软链接又叫符号链接,这个文件包含了另一个文件的路径名。其实就是Windows中的快捷方式。
软连接没有硬链接那么多的限制
1)软链接有自己的文件属性及权限等。
2)可对不存在的文件或目录创建软链接。
3)软链接可交叉文件系统。
4)软链接可对文件或目录创建,而且目录可以位于不同得到文件系统
5)创建软链接时,链接计数 i_nlink 不会增加。
6)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
ln -s 命令创建软链接
[[email protected] /]# touch newfile-link2.tetx
[[email protected] /]# ln -s newfile-link2.tetx /tmp/newfile-symlink.text
[[email protected] /]# ll newfile-link2.tetx /tmp/newfile-symlink.text
-rw-r--r--. 1 root root 0 Nov 16 04:19 newfile-link2.tetx
lrwxrwxrwx. 1 root root 18 Nov 16 04:20 /tmp/newfile-symlink.text -> newfile-link2.tetx
当原始文件删除时,链接文件依然指向该文件,但目标消失。指向缺失的文件的软链接称为“悬挂的软链接”、
[[email protected] /]# rm -f newfile-link2.tetx
[[email protected] /]# ll /tmp/newfile-symlink.text
lrwxrwxrwx. 1 root root 18 Nov 16 04:20 /tmp/newfile-symlink.text -> newfile-link2.tetx
[[email protected] /]# cat /tmp/newfile-symlink.text
cat: /tmp/newfile-symlink.text: No such file or directory