0

我正在寻找一种(最好是可移植的)方法来创建“短”相对符号链接。那是两个绝对文件名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"
4

1 回答 1

1

如果您的系统上有 Python 2.6 或更新版本,则可以这样做;如果从 bash 以外的其他 shell 启动,您可能需要修改引用。

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

受此启发

于 2013-01-10T20:03:34.673 回答