Linux链接目录:了解Linux文件系统中的软链接和硬链接 (linux 链接 目录)
作为一种先进的操作系统,Linux 自然有很多特性和优点,其中之一就是 Linux 文件系统下文件链接的基础概念。前端开发人员经常操作 Linux 服务器进行相关的开发,所以能够清楚地理解链接目录极其重要。在本篇文章中,我们将讨论 Linux 文件系统中两种链接目录:软链接和硬链接。
什么是链接目录?
在 Linux 文件系统中,一个文件可以有多个名字。链接目录就是对同一个文件使用不同名字的文件。常常需要出现多个文件抑或文件夹共用同一文件的情况,比如一个目录被分到分到多个分区上,而同时这些分区又有很多各自的目录。但是这时候需要做到每个目录拥有相同的文件。此时如果每个目录都要拷贝相同的文件就会浪费很多空间,因此就有了链接目录的概念。
软链接
软链接又被称为符号链接,它是指向另一个文件或目录的特殊文件,软链接不会复制文件或目录不同于硬链接。而是为它们提供一个不同的、更简洁的名称。如果一个软链接指向了另一个文件,则在访问该软链接时会自动地转向被指向的文件,且在文件属性中,可知该文件是软链接。软连接是通过 ln -s 命令来创建的。
如 下所 示,我们使用 ln -s 命令来创建了一个在 /root 目录下名为 test 的软链接,该软链接指向的是 /etc/hosts 文件。
“`
[root@linux ~]# ln -s /etc/hosts /root/test
[root@linux ~]# ls -l /root/test
lrwxrwxrwx 1 root root 11 6月 6 22:17 /root/test -> /etc/hosts
“`
我们可以使用 “ls -l” 命令来查看软链接所指向的实体文件。从上面的输出结果可以看出:软链接文件有一个 “->” 形符号,而之后的 /etc/hosts 即为实体文件的路径。
注意:/etc/hosts 是一个文本文件,里面保存了一些关于 IP 和Hostname 所对应关系的信息。
硬链接
硬链接是指可以链接到同一个 inode 上的两种不同文件名。当创建硬链接时,实际创建的是指向同一个物理数据块的两个 inode,所以它们共享相同的节点(模式,所有权和许可)。因此,删除其中一个文件将不会影响另一个文件,只会在所有硬链接都被删除之后才会删除该文件。硬链接可以通过 ln 命令来创建。
如 下所 示,我们使用 ln 命令来创建了一个文件 /root/hosts,然后创建了一个硬链接 /root/hosts.link。
“`
[root@linux ~]# ln /etc/hosts /root/hosts
[root@linux ~]# ln /root/hosts /root/hosts.link
“`
我们使用 ls -li 命令来查看文件的 inode,其中 -i 用于列出各个文件与它们的 inode 号。如下所示:
“`
[root@linux ~]# ls -li /etc/hosts /root/hosts /root/hosts.link
262237 -rw-r–r– 3 root root 197 6月 6 23:30 /etc/hosts
258212 -rw-r–r– 2 root root 197 6月 7 00:27 /root/hosts
258212 -rw-r–r– 2 root root 197 6月 7 00:27 /root/hosts.link
“`
从上面的输出结果可以看出:/root/hosts 和 /root/hosts.link 的 inode 号相同,意味它们指向同一个文件。
注意:因为硬链接不能指向目录,所以我们无法在不同的目录中创建硬链接。在 Linux 文件系统中,硬链接不能跨越文件系统文件,并且硬链接不支持符号链接,因为符号链接是基于文件名来寻找目标的。
结论
在本篇文章中,我们学习了在 Linux 文件系统中的软链接和硬链接两种链接文件的方法及所具有的特性。在实际应用中,软链接和硬链接均有其优势和劣势、适用范围和实际应用场景。因此,在实际生产环境中,建议根据实际情况,灵活选择合适的方式来实现链接目录。