【问题标题】:shell print effective directory - strip dotsshell打印有效目录-带点
【发布时间】:2015-03-17 04:50:41
【问题描述】:

我正在寻找一个 shell 内置函数或一个 shell 命令,当路径看起来像时“计算”有效目录路径

TOMCAT_HOME=/var/lib/tomcat7/webapps/ROOT/WEB-INF/../..

结果很明显

/var/lib/tomcat7

我做了一个

pushd dirname $0
cd ${TOMCAT_HOME}
pwd
popd

这给了我想要的东西,但肯定有更简单的方法,我现在想不出

【问题讨论】:

标签: shell path directory editing


【解决方案1】:

执行此操作的实用程序之一是realpath

$ realpath /var/lib/gconf/defaults/../..
/var/lib

您可能需要安装它。在 Debian 上,apt-get install realpath

另一个是 coreutils 的一部分,当与 -f 选项一起使用时是 readlink

$ readlink -f /var/lib/gconf/defaults/../..
/var/lib

【讨论】:

  • 或者您也可以使用标准实用程序readlink,无需安装任何东西。
  • 谢谢,但我的意图是使用纯粹的 shell 内置命令或“标准”命令。
  • @Krischu 你在什么操作系统上? readlink 是 coreutils 的一部分,使其非常标准。
  • 我的评论是针对您的帖子(在您再次编辑并添加阅读链接之前)。在此之前只有“realpath”和 rwzy 建议 readlink。 :) 但感谢两者。
  • @Krischu 很抱歉造成混乱。我在 readlink 进行编辑,同时你和 rwzy 正在发表评论。
猜你喜欢
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多