명령 프롬프트에 표시된 대로 CWD를 자르는 방법

명령 프롬프트에 표시된 대로 CWD를 자르는 방법

콘솔에서 내 CWD가 무엇인지 확인하기 위해 ~/.bash_profile에 다음을 추가합니다.

export PS1='$(pwd)$ '

따라서 pwd결과는 $기호 앞에 표시됩니다. 정말 좋습니다.

하지만 이름이 긴 디렉토리에 들어가면 다음과 같습니다./var/www/vhosts/beta.sitename.co.uk/httpdocs/sites/beta.sitename.co.uk/modules/bundles

명령 프롬프트에 다음이 표시됩니다.

.co.uk/modules/bundles$ sitename.co.uk/httpdocs/sites/beta.sitename.

이로 인해 쉘을 거의 사용할 수 없게 됩니다. 잘라내고 마지막 부분이나 디렉터리 이름만 유지하는 것이 가능한가요? 30자라고 가정해 보겠습니다.

pwdcd아니면 각 명령 다음에 인쇄하여 내가 어디에 있는지 알 수 있도록 하는 것이 더 나은 아이디어일까요 ? 이는 별칭을 사용하여 수행할 수 있습니다.

답변1

내 경우에는 .bashrcPS1이 현재 작업 디렉터리의 마지막 구성 요소를 표시하도록 구성되어 있습니다. 이는 다음을 \W사용하여 수행할 수 있습니다(PS1은 일부 특수 시퀀스 및 변수를 허용함). 귀하의 경우에는 다음과 같습니다.

$ export PS1='\W$'

man bash이러한 시퀀스의 더 많은 내용은 , at 에서 찾을 수 있습니다 Prompting.이봐. \w전체 경로를 사용할 수도 있지만 $HOME축약됩니다 ~(이렇게 하면 대부분의 경로가 단축됩니다). 이제 글자 수 제한을 설정하고 싶다면 다음을 사용할 수 있습니다.

$ export PS1='$(pwd | tail -c30)$' # Limited to 30 characters
$ export PS1='...$(pwd | tail -c30)$'

...또는 약간 부끄러움을 느끼는 경우도 있습니다.

$ export PS1='${PWD: -30}$'
$ export PS1='${PWD:(-30)}$'
$ export PS1='...${PWD: -30}$'
$ export PS1='...${PWD:(-30)}$'

관련 정보