美文网首页每天写500字每周500字
linux命令行学习(9):再谈建立软链接的路径表达

linux命令行学习(9):再谈建立软链接的路径表达

作者: 金石明镜 | 来源:发表于2019-10-06 20:42 被阅读0次

不管是硬链接还是软链接,实践中,一般都是建立在跟原文件不同的目录中,以方便使用。这样,在使用ln命令时,就存在一个路径的表达问题。

虽然也可以建立在原文件所在目录中,但这样做的实际意义不大。

前面说到,建立硬链接时,不管使用绝对路径还是相对路径,都没有问题。但在建立软件时,对原文件使用相对路径要特别小心,最好使用绝对路径。

用绝对路径的缺点是,有些需要写得太多。

但用相对路径又容易出错。如果我们要用相对路径来写,应该怎么办呢?

原则是:原文件前的相对路径,要参照软链接名的位置来写。

下面举一个例子来说明。

这个例子中,目录test下有两个子目录,dir1,dir2。

test中有个文本文件fun。

我们通过三个命令,建立它的三个软链接。

第一个fun-sym就建立在test中,使用命令:

ln -s fun fun-sym

这是最简单的情形。

第二个,是在test的子目录dir1下建立软链接fun-sym:

ln -s ../fun dir1/fun-sym

注意它的写法,为什么第一个参数要写成../fun而不是fun?

这是因为,我们要建立test的子目录中的软链接,而原文件fun在这个子目录的上级目录中。../就表达了原文件fun对于要建立的软链接的相对位置——在其上级目录中。注意,..表示上级目录。这样写就没有问题。

用同样的方法,我们建立在fun在dir2子目录中的软链接。

例子中,如果要建立在dir1中的硬链接fun-hard,应该这样写:

ln fun dir1/fun-hard

比较建立软链接的命令:

ln -s ../fun dir1/fun-sym

就可以看出两者的区别。

这里,建立在dir1中的硬链接不能像建立在dir1中的软链接那样写:ln ../fun dir1/fun-hard

写成这样,命令就不能执行。

相关文章

网友评论

    本文标题:linux命令行学习(9):再谈建立软链接的路径表达

    本文链接:https://www.haomeiwen.com/subject/feqppctx.html