![da495fac16ccc98a1206643077b22d6b.png](https://img-blog.csdnimg.cn/img_convert/da495fac16ccc98a1206643077b22d6b.png)
ln -s 创建软链接的语法为:
ln -s 源文件路径 软链接文件路径
比如有两个文件夹 a_folder 和 b_folder,a_folder下有一个hello_world.sh的文件。
![1c2317b3d94a02b73b6084d22c6e0989.png](https://img-blog.csdnimg.cn/img_convert/1c2317b3d94a02b73b6084d22c6e0989.png)
如果在a_folder下创建一个hello_world.sh文件的软链接,那很简单,直接创建就可以。
ln -s hello_world.sh soft_link
![55dd2b0352a85cf8c153e6955d4ae116.png](https://img-blog.csdnimg.cn/img_convert/55dd2b0352a85cf8c153e6955d4ae116.png)
但如果在b_folder下创建一个hello_world.sh文件的软链接,就需要注意了。
直接使用下面的命令是错误的:
ln -s a_folder/hello_world.sh b_folder/soft_link
![58e580653c384a8e8206e689812bf716.png](https://img-blog.csdnimg.cn/img_convert/58e580653c384a8e8206e689812bf716.png)
上面创建出来的soft_link是找不到hello_world.sh文件的。
这是因为通过 ln -s 创建链接文件,如果原始文件路径是相对路径,其相对路径的基准路径是链接文件的路径。
这句话有点拗口,简单来说就是通过链接文件找源文件,是以链接文件的路径为当前路径的。
正确的命令如下图所示:
ln -s ../a_folder/hello_world.sh soft_link
![9dc4b7fbe99e8cde6019006450fe513c.png](https://img-blog.csdnimg.cn/img_convert/9dc4b7fbe99e8cde6019006450fe513c.png)
当然,还有另外一种方式,就是源文件和链接文件的路径都是绝对路径。
相关阅读
C语言学习笔记总结:编译、链表、指针、标准库、时间、工具