Bash / Zshプロンプトに現在のディレクトリとその親ディレクトリのみを表示させるにはどうすればよいですか?

Bash / Zshプロンプトに現在のディレクトリとその親ディレクトリのみを表示させるにはどうすればよいですか?

現在のディレクトリと親ディレクトリのみを表示するbashおよびzshプロンプトを作成する方法は?

たとえば、私がdirにいる場合は、次のように~/pictures/photos/2021表示する必要があります。

[photos/2021]$ echo hi

それはすべてです。bashのためにそれをしたいzsh

答え1

存在するzsh

PS1='[%2d] $ '

バラよりinfo zsh 'prompt expansion'もっと学ぶ。

bash(またはでzsh -o promptsubstこれをしたくありませんが、文字を$PWD含むように追加の%プロンプト拡張につながる可能性があります):

PS1='[${PWD#"${PWD%/*/*}/"}] $ '

答え2

より読みやすい別のオプションは次のとおりです。

PS1='[$(basename $(dirname "$PWD"))/$(basename "$PWD")]'

これは、同様のディレクトリ操作をより一般的に実行する方法も示しています。

関連情報