我正在寻找一种(最好是便携式的)方式来创建“短”的相对符号链接。那是两个绝对文件名target
和name
我想找到一个等效的短文件名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"
答案 0 :(得分:1)
如果您的系统上安装了Python 2.6或更高版本,则可以执行此操作;如果从另一个shell启动而不是bash,则可能需要修改引用。
ln -s "`python -c "import os.path; print os.path.relpath('$target','$name')"`" "$name"
受this的启发。