在OS X中,我如何取消引用符号链接到规范文件名? (即以/开头的一个)。
也就是说,我相当于GNU readlink的-f选项:
kapow:~$ greadlink -f .bash_profile /Users/mjs/.config/home/.bash_profile
OS X的readlink返回一个相对的链接:
kapow:~$ readlink .bash_profile .config/home/.bash_profile
stat(1)确实有很多选项,但是我找不出合适的组合来做我想做的事情。
最直接的解决scheme是testing返回值,并且如果发现readlink已经返回了一个相对path而不是存储在链接中的绝对path,那么testingpwd 。 任何不以/开头的东西都很容易用各种unix工具来testing。
我不知道这是否是一个有意识的devise决定,因为OS X更喜欢文件系统别名,它跟踪文件的唯一标识以及path,或者仅仅是从BSD开始的遗漏/差异。 显而易见的是,没有select使用readlink的OS X版本来合成链接文件的完整path。
这里有几个现成的解决scheme来实现从另一个网站的OS X read link -f …
如果你是GNU工具的爱好者,你会想要自制软件并安装coreutils软件包 – 然后你可以将greadlink别名为readlink并进行一些小题大做。