답변1
다음을 수행할 수 있습니다.
$ set -o extendedglob -o promptsubst
$ PS1='${${${PWD/#%(#b)$HOME(|\/*)/
답변2
- 파일 을 편집해야 합니다
.p10k.zsh
(제 경우에는 zsh/oh-my-zsh/iTerm에서 powerlevel10k를 사용하고 있습니다).
(또는 원하는 다른 편집기를 사용하십시오).nano .p10k.zsh
- 행을 검색
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY
하고 다음과 같은 값을 추가합니다.typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_from_right
- 다음 줄을 검색하여
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER
공백으로 설정합니다.typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
- 마지막으로 라인을 검색
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH
하고 값 1을 추가합니다.typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
표준 zsh 테마(powerlevel10k 테마 없이)를 사용하는 경우 다음을 시도해 볼 수 있습니다.
다음에 추가 ~/.zshrc
:
setopt prompt_subst
PROMPT='\$ /$(printf "%c/" ${(s./.)PWD:h})${PWD:t} '
(s./.)
– 에서 경로를 분할합니다/
.printf "%c/"
– 각 디렉토리 조각의 첫 번째 문자를 인쇄합니다.${PWD:h}
– 현재 디렉토리의 "헤드", 즉 마지막 요소를 제외한 모든 것.${PWD:t}
– 디렉토리 경로의 "tail"/마지막 요소입니다.
답변3
링크를 생성할 수 있습니다.
ln -s pokemon P
cd pokemon
그런 다음 or을 수행하면 cd P
동일한 디렉토리에 있게 됩니다.
답변4
나는 이 테스트를 했다:
pwd | awk -F/ 'BEGIN{ ORS="/" } END{for (i=1; i<=NF; i++){print $i}}'
result : /opt/tools/intel/oneapi
그런 다음 이:
pwd | awk -F/ 'BEGIN{ ORS="/" } END{for (i=1; i<=NF; i++){print substr($i,1,1)}}'
result : /o/t/i/o
따라서 bashrc를 다음과 같이 수정해 볼 수 있습니다.
function generate_pwd {
pwd | awk -F/ 'BEGIN{ ORS="/" } END{for (i=1; i<=NF; i++){print substr($i,1,1)}}'
}
export PS1="\$(generate_pwd) => "
잘 작동합니다.