+ -
当前位置:首页 → 问答吧 → 关于链接文件位置的疑惑

关于链接文件位置的疑惑

时间:2008-11-01

来源:互联网

在安装Bash-3.1,做链接文件的过程中有个疑惑
命令是这样的

ln -vs bash /tools/bin/sh

进入/tools/bin/下查看,sh指向的是/tools/bin/bash,但是当前的目录是/mnt/lfs/sources/bash-3.1,是解压后的文件夹,照说被链接的文件应该是在这个目录里面的。
配置bash的时候,configure 的prefix=/tools

为什么链接的时候会到/tools/bin下呢?

作者: tzfox   发布时间: 2008-11-01

UP,UP一下。。。。。。。。。。

作者: tzfox   发布时间: 2008-11-01

我觉得你说的是很普通的一种用法
ln -s target link_name
如果target是相对路径那么就根据link_namede路径来定位target

以上是我的理解
倒是下面这个用法很特殊 LFS有特意指出
ln -sv $LFS/tools /

The above command is correct. The ln command has a few syntactic variations, so be sure to check info coreutils ln and ln(1) before reporting what you may think is an error.
刚才想尝试看下ln.c来看怎么处理ln -sv $LFS/tools /的
可是C学的太差 看到一半找不到函数了
编译原理不熟悉...o_O!!!

作者: ppluer   发布时间: 2008-11-03

引用:
作者: ppluer
我觉得你说的是很普通的一种用法
ln -s target link_name
如果target是相对路径那么就根据link_namede路径来定位target

以上是我的理解
倒是下面这个用法很特殊 LFS有特意指出
ln -sv $LFS/tools /

The above command is correct. The ln command has a few syntactic variations, so be sure to check info coreutils ln and ln(1) before reporting what you may think is an error.
刚才想尝试看下ln.c来看怎么处理ln -sv $LFS/tools /的
可是C学的太差 看到一半找不到函数了
编译原理不熟悉...o_O!!!
看linux-2.6.23.8代码没有找到ln.c这个文件啊?
和编译原理有什么关系吗?

作者: think365   发布时间: 2008-11-03

引用:
作者: think365
看linux-2.6.23.8代码没有找到ln.c这个文件啊?
和编译原理有什么关系吗?
ln的源代码不再内核里
在coreutils中src目录找ln.c
ok = ((symbolic_link ? symlink (source, dest) : link (source, dest))
== 0);
这一句根据symbolic_link来判断创建符号链接还是硬链接
但是symlink() link()不知道转到哪里去了

作者: ppluer   发布时间: 2008-11-04