👋
1つ上のディレクトリ名をとるShellコマンド
1 つ上のディレクトリ path をとる
~/.ghq/github.com/elzup/anozonbiyori
$ basename ${PWD%/*}
elzup
現在のディレクトリ path をとる
~/.ghq/github.com/elzup/anozonbiyori
$ basename $PWD
anozonbiyori
2 ディレクトリをとる
$
~/.ghq/github.com/elzup/anozonbiyori
echo `basename ${PWD%/*}`/`basename $PWD`
elzup/anozonbiyori
補足
${PWD%/*}
という部分は文字列置換が働いてます。
$ pwd
/Users/hiro/.ghq/github.com/elzup/anozonbiyori
$ echo ${PWD%/*} # 末尾から/までの非貪欲マッチ部分を削除
/Users/hiro/.ghq/github.com/elzup
$ basename ${PWD%/*}
elzup
$ echo ${${PWD%/*}##*/}
elzup
おまけ: alias 化
推奨はしないよ!
title=.zshrc
alias basename-current='basename ${PWD}'
alias basename-parent='echo `basename ${PWD%/*}`/`basename $PWD`'
alias reponame=basename-parent
Discussion