规范化 solaris 上的路径名
在 GNU 系统上我只会使用 readlink -f $SOME_PATH ,但 Solaris 没有 readlink 。
我更喜欢在 bash 中运行良好的程序,但如果需要的话其他程序也可以。
编辑:到目前为止,我想到的最好的方法是使用 cd 和 pwd,但需要更多的技巧来处理文件而不仅仅是目录。
cd -P "$*"
REAL_PATH=`pwd`
On a GNU system I would just use readlink -f $SOME_PATH
, but Solaris doesn't have readlink.
I'd prefer something that works well in bash, but other programs are ok if needed.
Edit: The best I've come up with so far uses cd and pwd, but requires some more hackery to deal with files and not just directories.
cd -P "$*"
REAL_PATH=`pwd`
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
可能有点矫枉过正,但这是操作系统可移植的,不需要先找到目录名或基名二进制文件..这个单行有效。 只需在您看到 $origFile 的位置传递文件名即可:
perl -e "use Cwd realpath; print realpath(\"$origFile\");"
Might be overkill, but this is OS portable, and does not need to find the dirname nor basename binaries first.. this one-liner works. Just pass in your filename where you see $origFile:
perl -e "use Cwd realpath; print realpath(\"$origFile\");"
这有帮助吗? 从引用的页面:
创建一个名为
canonicalize
的文件,其中包含以下内容:使文件可执行:
最后:
Does this help? From the referenced page:
Create a file called
canonicalize
with these contents:Make the file executable:
And finally: