Linux上的软链接相当于Windows上的快捷方式,在一些情况下使用软链接会非常方便,本文将简单介绍创建软链接删除软链接修改软链接的方式。

1 创建软链接

ln -s [源文件或者目录] [目标文件或者目录]

使用例子,比如源目录为/opt/rh/devtoolset-9/root/bin/gcc,目标目录为/usr/bin/gcc,创建软链接命令为

ln -s /opt/rh/devtoolset-9/root/bin/gcc /usr/bin/gcc

目标文件或者目录不需要提前创建,如果不存在会自动创建。

2 删除软链接

rm [软链接名字]
unlink [软链接名字]
rm -r [软链接名字] # 这里的参数 r 其实是没有意义的,因为是一个软连接 不是目录
rm -rf [软链接名字] # 这里的 rf 同样没有意义,只是rm 命令忽略了这里的参数

我们在删除软链接时必须非常注意,如果使用不正确的删除软链接可能引发非常严重的后果。如果软链接的是文件夹,那么在删除时不要加斜杠/,这样会将源目录下的文件一起删除。比如

假设软链接为link,以下命令都是正确的

unlink link
rm link
rm -r link
rm -rf link

如果是以下命令则会把源目录也删除

rm -rf link/ # 这个时候link这个软链接并没有删除,而源目录下文件全部被删除了

所以使用rm -rf 软链接/命令会将软链接源目录下的文件递归删除,并且不会进行提示,所以不建议使用这个命令删除软链接。最安全的方式是使用unlink [软链接名字],这个时候即使shell自动补全了后面的/unlink命令也会提示无法删除。

3 更新/修改软链接

ln -snf [新的源文件或目录] [目标文件或目录]

比如将第1节中的/usr/bin/gcc的链接目录修改为/opt/rh/devtoolset-10/root/bin/gcc

ln -snf /opt/rh/devtoolset-10/root/bin/gcc /usr/bin/gcc