あのぞんブログ

1つ上のディレクトリ名をとるShellコマンド

2020-05-27

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 化

推奨はしないよ!

.zshrc
alias basename-current='basename ${PWD}'
alias basename-parent='echo `basename ${PWD%/*}`/`basename $PWD`'
alias reponame=basename-parent

© 2021 あのぞんびより All Rights Reserved