【问题标题】:Transform path with ".." elements to absolute path, in a script?在脚本中将带有“..”元素的路径转换为绝对路径?
【发布时间】:2014-07-13 05:27:17
【问题描述】:

因此,在编写 bash/sh 脚本时,我在变量中获得了一个路径,其中包含以下内容:

$SOMEPATH=/usr/lib64/pkgconfig/../..

如何将 $SOMEVAR 转换为将“..”文件夹转换为此值的完整绝对路径?:

$SOMEFULLPATH=/usr

谢谢

【问题讨论】:

    标签: bash shell path sh relative-path


    【解决方案1】:

    你可以使用readlink:

    readlink -f "$SOMEPATH"
    
       -f, --canonicalize
              canonicalize  by  following  every symlink in every component of
              the given name recursively; all  but  the  last  component  must
              exist
    
       -m, --canonicalize-missing
              canonicalize by following every symlink in  every  component  of
              the  given  name recursively, without requirements on components
              existence
    

    【讨论】:

      【解决方案2】:

      与@devnull 的答案类似,我推荐readlink,但是-m 选项不需要文件路径的任何部分已经存在,这样更灵活。
      readlink -m $SOMEFULLPATH

      【讨论】:

        猜你喜欢
        • 2014-01-28
        • 2018-02-25
        • 2017-08-01
        • 2011-11-07
        • 2011-05-02
        相关资源
        最近更新 更多