Linux 文件软链接、硬链接

linux的硬链接和软链接

链接方式有两种:硬链接和软链接

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。

(1)硬链接:多个文件名指向同一索引节点

作用:允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。

其实一个硬链接就是一个文件的一个别名,只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

硬链接文件有两个限制

1)、不允许给目录创建硬链接

2)、只有在同一文件系统中的文件之间才能创建硬链接

ln 命令为现有文件创建新的硬链接。该命令懂得第一个参数为现有文件,后面可以跟一个或者多个额外的硬链接。硬链接可以处在任何位置上。

在/tmp目录中为现有的文件newfile.text创建硬链接mewfile-link1.text

[root@localhost ~]# cd /tmp

[root@localhost tmp]# touch newfile.text

[root@localhost tmp]# ln newfile.text /tmp/newfile-link.text

[root@localhost 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

即使原来文件删除,只要有一个硬链接存在,该文件的内容就依然可读

[root@localhost tmp]# echo 'hello,world' > newfile.text

[root@localhost tmp]# rm -f newfile.text 

[root@localhost tmp]# ll /tmp/newfile-link.text 

-rw-r--r--. 1 root root 12 Nov 16 04:10 /tmp/newfile-link.text

[root@localhost tmp]# cat /tmp/newfile-link.text 

hello,world

(2)软链接

软链接又叫符号链接,这个文件包含了另一个文件的路径名。其实就是Windows中的快捷方式。

软连接没有硬链接那么多的限制

1)软链接有自己的文件属性及权限等。

2)可对不存在的文件或目录创建软链接。

3)软链接可交叉文件系统。

4)软链接可对文件或目录创建,而且目录可以位于不同得到文件系统

5)创建软链接时,链接计数 i_nlink 不会增加。

6)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

ln -s 命令创建软链接

[root@localhost /]# touch newfile-link2.tetx

[root@localhost /]# ln -s newfile-link2.tetx /tmp/newfile-symlink.text 

[root@localhost /]# 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

当原始文件删除时,链接文件依然指向该文件,但目标消失。指向缺失的文件的软链接称为“悬挂的软链接”、

[root@localhost /]# rm -f newfile-link2.tetx 

[root@localhost /]# ll /tmp/newfile-symlink.text 

lrwxrwxrwx. 1 root root 18 Nov 16 04:20 /tmp/newfile-symlink.text -> newfile-link2.tetx

[root@localhost /]# cat /tmp/newfile-symlink.text 

cat: /tmp/newfile-symlink.text: No such file or directory









你可能感兴趣的:(linux,文件链接)