쉘 프롬프트의 현재 디렉토리에 대한 약어는 무엇입니까?

쉘 프롬프트의 현재 디렉토리에 대한 약어는 무엇입니까?

vim경로가 약간 길 때 활용하는 아주 좋은 기능이 있습니다.

여기에 이미지 설명을 입력하세요.

상단 탭에 있는 문서에 대한 경로를 축약합니다. 내 bash 프롬프트가 다음과 같이 보이지 않도록 비슷한 작업을 수행하는 방법이 있습니까?

rfkrocktk@work-laptop ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $ 

답변1

나는 PROMPT_DIRTRIMbash에있는 것을 좋아합니다 ...

export PROMPT_DIRTRIM=2

예제 프롬프트를 다음으로 변경합니다...

rfkrocktk@work-laptop ../com/tkassembled/ $

이것은 나에게 효과적입니다.

답변2

노력하다이것:

PROMPT_COMMAND='PS1X=$(perl -pl0 -e "s|^${HOME}|~|;s|([^/])[^/]*/|$""1/|g" <<<${PWD})'

또는 순수 bash:

PROMPT_COMMAND='PS1X=$(p="${PWD#${HOME}}"; [ "${PWD}" != "${p}" ] && printf "~";IFS=/; for q in ${p:1}; do printf /${q:0:1}; done; printf "${q:1}")'

그 다음에

PS1='\u@\h ${PS1X} $ '

생성합니다( ~for 참고 ${HOME}).

rfkrocktk@work-laptop ~/D/P/W/m/s/m/j/c/tkassembled $

답변이 개선되었습니다. 감사합니다.@엔조팁

답변3

@nicerobot의 답변과 유사하지만 약간 더 짧습니다.

PROMPT_COMMAND='pwd2=$(sed "s:\([^/]\)[^/]*/:\1/:g" <<<$PWD)'
PS1='\u@\h:$pwd2\$ '

그러면 다음 샘플 출력이 표시됩니다.

enzotib@acer:/h/enzotib$ cd
enzotib@acer:/h/enzotib$ cd /usr/share/doc/acpid/examples/
enzotib@acer:/u/s/d/a/examples$

답변4

사용 중인 형식은 PS1다음과 같습니다 \W( 맨 페이지 PROMPTING의 섹션 참조 bash).

PS1="\u@\h \W\$ "

다른 옵션에 대해 읽어보고 싶을 수도 있습니다. 명령줄을 사용하여 몇 가지 멋진 작업을 수행할 수 있습니다.

관련 정보