2009-05-27 26 views
3

是否有一个bash命令将输入​​文件路径并返回绝对文件路径? 更具体地说,我想这需要输入一个路径,如命令:如何评估bash shell中的给定路径

/tmp/yaneeve/kit/linux/../../output/kit/SOURCES//usr//apps/myapp/lib

,并返回路径:

/tmp/yaneeve/output/kit/SOURCES/usr/apps/myapp/lib

谢谢!

回答

5

尝试(Linux)的

readlink -f 
+0

大家好, 请注意,我在readlink中发现了一个错误(?)。当路径不存在时,它只将第一部分附加到其输出。 例如: 说输入为/ tmp/yaneeve /应用/ NEWAPP /导向/主机 和说这个路径存在的最深部分为/ tmp/yaneeve /应用 输出将是/ tmp/yaneeve/apps/newapp 对此发现有何评论? – Yaneeve 2009-05-31 08:17:44

+0

它不输出任何东西,对于不存在的修饰(我完全用你的例子)。 – TheBonsai 2009-06-02 13:48:03

9

如果路径存在,存在是一个可移植的方式(甚至在Linux上)更为可靠:

canonicalPath=$(cd "$path"; pwd)