我正在使用PWD来获取当前的工作目录.是否有一个SED或正则表达式,我可以使用,比方说,让两个父母的完整路径?
Pau*_*ce. 18
这应该在POSIX shell中有效:
echo ${PWD%/*/*}
Run Code Online (Sandbox Code Playgroud)
这将给你一个绝对的路径,而不是一个相对的路径.
另外,请参阅我在这里给出两个函数的答案:
cdn () { pushd .; for ((i=1; i<=$1; i++)); do cd ..; done; pwd; }
Run Code Online (Sandbox Code Playgroud)
其中上升ñ水平给出ň作为参数.
和:
cdu () { cd "${PWD%/$1/*}/$1"; }
Run Code Online (Sandbox Code Playgroud)
它上升到当前工作目录上方的命名子目录.
Ber*_*t F 17
为什么sed或正则表达式?为什么不dirname
:
parent=`dirname $PWD`
grandparent=`dirname $parent`
Run Code Online (Sandbox Code Playgroud)
编辑:
@Daentyh在评论中指出,在POSIX兼容的shell 中显然$()
优先于反引号``
进行命令替换.我对他们没有经验.更多信息:
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03
所以,如果这适用于你的shell,你可以(应该?)使用:
parent=$(dirname $PWD)
grandparent=$(dirname $parent)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11742 次 |
最近记录: |