硬连接 ln /软链接 ln -s
-
ln psql10 psql创建硬链接- 创建一个硬链接名为 psql,相当于额外为psql10文件创建了一个目录项,使其指向的底层内容相等,相当于额外的一个引用
- 好处
- 可以为文件指定一个别名去访问
- 限制
- 这里的psql10,只能是文件,不能是目录
- 不能跨物理设备去引用,即必须要在一个磁盘分区内
- 删除掉 psql 后,只是减少了一个目录项(即引用计数-1),直到所有的硬链接被删除,才能把源文件彻底在物理上删除
ls显示目录情况-rw-r--r-- 2 me me 1650 2018-01-10 16:33 psql10 -rw-r--r-- 2 me me 1650 2018-01-10 16:33 psql- 发现上面有数字2,就代表了这里硬链接的数量(包括了源文件名本身,因为源文件名也是通过硬链接创建了)
- 怎么知道这两个指向同样的底层内容呢?
- 可以直接看1650这个大小去预估
- 但更建议通过
ls -li去输出下面的结果去查验12353538 -rw-r--r-- 2 me me 1650 2018-01-10 16:33 psql10 12353538 -rw-r--r-- 2 me me 1650 2018-01-10 16:33 psql- 发现上面有数字12353538,这个就是inode节点号,相同的话,就是指向同一个底层内容
-
ln -s psql10 psql创建软链接【推荐】- 创建一个软链接名为 psql,使其实际指向的是 psql10
- 也叫符号链接
- 好处
- 弥补了硬链接的不足
- psql10 可以是目录
- 可以跨物理设备引用
- 在更换新的版本,比如 psql11 时,就可以用下面的命令去覆盖原有的 psql10,当其他地方引用了 psql,升级时就不用做任何更改
ln -sf psql11 psql-f参数 会在已有psql软链接时强行覆盖
- 弥补了硬链接的不足
ls显示目录情况lrwxrwxrwx 1 me me 6 2018-01-10 16:35 psql -> psql10- 发现上面有一个箭头,即指向的实际文件或目录
- 同时最开头有一个
l字母,代表了这是一条软链接