如何打印当前目录的父目录的名称

时间:2013-07-25 13:09:48

标签: shell unix ksh

我希望我能清楚地表达我的问题。具体来说,就是这样:

我想使用test或者case case语句来确定变量$ DIR中包含的目录名是否是我当前的目录(。)或它的父目录(..)

当然我可以回显我当前的目录(echo $ PWD),但回显$ PWD父母的最简单方法是什么?

感谢。

3 个答案:

答案 0 :(得分:6)

您可以使用${PWD%/*}

$ echo $PWD
/home/me/test/t
$ echo ${PWD%/*}
/home/me/test

由于表达式${PWD%/*}正在从/*后面剥离$PWD的最短匹配:

来自Bash Reference Manual → 3.5.3 Shell Parameter Expansion

  

<强> $ {参数%字}

     

这个词被扩展为产生一个模式,就像文件名扩展一样。如果模式匹配参数的扩展值的尾部,则扩展的结果是删除了最短匹配模式的参数的值。如果参数是'@'或'',则模式删除操作依次应用于每个位置参数,并且扩展是结果列表。如果参数是使用'@'或''下标的数组变量,则模式删除操作依次应用于数组的每个成员,并且扩展是结果列表。

答案 1 :(得分:3)

dirname $PWD

dirname $(pwd)

答案 2 :(得分:0)

realpath

parent=$(realpath "$PWD/..")