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")]'

이는 또한 유사한 디렉터리 작업을 보다 일반적으로 수행하는 방법을 보여줍니다.

관련 정보