一、创建软链接(符号链接)
查看ln --help:

命令:
bash
ln -s 源 链接名
例如在/data目录下有个zulu8.84.0.15-ca-jdk8.0.442-linux_x64.tar.gz文件,我们为它创建软链接
bash
ln -s /data/zulu8.84.0.15-ca-jdk8.0.442-linux_x64.tar.gz /data/java8

删除软链接指向的目标文件(这个是为了测试一下软链接在源文件删除后什么表象)
bash
rm -rf zulu8.84.0.15-ca-jdk8.0.442-linux_x64.tar.gz

删除后,软链接失效了,在这变成了红色名字,如果目标文件被删除,软链接将变成"悬挂链接"(dangling link),即指向一个不存在的文件。
二、创建硬链接
硬链接就是ln不加-s默认就是硬链接
bash
ln /data/zulu8.84.0.15-ca-jdk8.0.442-linux_x64.tar.gz /data/jdk8

此时可以看到它并不是软链接那种指向关系。
删除源文件,只保留jdk8这个硬链接

解压jdk8,仍然可以解压

硬链接是直接指向存储块的,也就是说源文件删除掉后这个硬链接还存在的话就可以进行操作(硬链接和原文件共享相同的 inode 和数据块)
三、注意
软链接可以跨文件系统。你可以在不同的磁盘分区之间创建指向目标的软链接。
硬链接只能在同一文件系统内创建,它不能跨越不同的磁盘分区或文件系统