软连接
符号链接(也被称为“软连接”)需要使用带 -s参数(symbolic)的 ln 命令来创建
下面这个命令最简单的形式,这条命令给目标文件IBLOGER取了一个别名LINK_IBLOGER,如下代码
ln -s IBLOGER LINK_IBLOGER
下面这个例子具体说明了符号链接的作用
$ ln -s days my_days ## 建立一个名为my_days的符号链接指向文本文件days $ ls -l my_days ## 查看my_days的属性 lrwxrwxrwx 1 rapido rapido 4 2016-11-20 22:10 my_days -> days
从my_days的属性中可以看得到,这个文件被指向days,从此访问my_days就相当于访问了days
my_days只是文件days的一个“别名”,因此删除了my_days并不会影响到days,但是如果吧days删除了,那么my_days虽然还保留着,但是已经没有任何意义了
符号链接还可以用在目录中,下面这条命令建立一个指向/usr/local/share的符号链接local_share
$ ln -s /usr/local/share local_share
查看local_share的属性的确可以看到这一点
$ ls -l local_share lrwxrwxrwx 1 rapido rapido 17 2016-11-20 22:15 local_share -> /usr/local/share/
硬链接
Linux中还有一种链接被称为“硬链接”,这种连接用于将连个独立的文件联系在一起,硬链接和符号连接本质的不同在于:硬链接是直接和引用,而符号链接是通过名称进行引用,使用不带选项的 ln 命令建立硬链接。
$ ln days hard_days
上面这条命令建立了一个链接到days的新文件hard_days.查看两者的属性可以看到,这是两个独立的文件,只是被联系到了一起而已
$ ls -l days -rwx--x--x 2 rapido rapido 57 2016-11-23 18:00 days $ ls -l hard_days -rwx--x--x 2 rapido rapido 57 2016-11-23 18:00 hard_days
这两个文件拥有相同的内容,对其中一个文件的改动会反映在另一个文件中,用熟悉的文本编辑器打开days,删除最后两行,可以看到hard_days中的内容也改变了。
在实际工作中,人们更多的选择使用符号链接(软连接),硬链接已经很少使用了