创建一个最小的符号链接

时间:2013-01-10 19:36:49

标签: shell

我正在寻找一种(最好是便携式的)方式来创建“短”的相对符号链接。那是两个绝对文件名targetname我想找到一个等效的短文件名reltarget,以便在

之后
ln -s $target $name

name指向与

之后相同的位置
ln -s $reltarget $name

一些例子:

target="/usr/bin/program-1.2"; name="/usr/bin/program";
=> reltarget="program-1.2"

target="/usr/lib/program-1.2/bin/program"; name="/usr/bin/program-1.2";
=> reltarget="../lib/program-1.2/bin/program"

1 个答案:

答案 0 :(得分:1)

如果您的系统上安装了Python 2.6或更高版本,则可以执行此操作;如果从另一个shell启动而不是bash,则可能需要修改引用。

ln -s "`python -c "import os.path; print os.path.relpath('$target','$name')"`" "$name"

this的启发。