在 Linux 中,可以对文件生成链接。链接有两种,一种是软链接,一种是硬链接。这两种链接分别有什么作用呢?今天我们就来聊一聊。
如何生成链接?
ln -s [原文件] [目标文件] #对原文件生成一个软连接
ln [原文件] [目标文件] #对原文件生成一个硬连接
例如:
对 /etc/issue 生成一个软链接 /etc/issue.soft
ln -s /etc/issue /tmp/issue.soft
对 /etc/issue 生成一个硬链接 /etc/issue.hard
ln -s /etc/issue /tmp/issue.hard
软链接和硬链接的特性
软链接类似于Windows的快捷方式,软链接的所有权限向所有人开放,但是软链接只是一个链接,真正的权限是由这个链接指向的文件的权限决定的。
软链接的详细信息:
[root@localhost ~]# ll /tmp/issue.soft
lrwxrwxrwx. 1 root root 10 4月 10 04:56 /tmp/issue.soft -> /etc/issue
生成硬链接的操作有点像 cp -p
,即保存文件属性的拷贝。但是硬链接和 cp -p
的不同之处在于,修改原文件内容,硬链接会同步更新。反之,修改硬链接的内容,原文件也会同步更新。硬链接和原文件的 i 节点是一样的。
硬链接的详细信息:
[root@localhost ~]# ll /tmp/issue.hard
-rw-r--r--. 2 root root 47 11月 27 2013 /tmp/issue.hard
原文件的详细信息:
[root@localhost ~]# ll /etc/issue
-rw-r--r--. 2 root root 47 11月 27 2013 /etc/issue
- 硬链接不能跨分区,软链接可以。
- 硬链接不能针对目录使用,软链接可以。
- 删除原文件之后,硬链接文件仍然存在并且可以正常访问,但是软链接将无法使用。
网友评论