zsh의 현재 디렉토리에서 디렉토리 부분 제거

zsh의 현재 디렉토리에서 디렉토리 부분 제거

/usr/local/binCD를 사용 했지만 비밀번호를 로 변경하고 싶다고 가정해 보겠습니다 /usr/bin. zsh로 어떻게 할 수 있나요? 비밀번호를 로 변경하기 위해 cd /a/b/와 같은 작업을 수행할 수 있다는 것을 알고 있지만 원하는 작업을 수행하는 방법을 잘 모르겠습니다.cd b c/a/b

답변1

zsh의 유연한 기능을 고려하면 cd원하는 작업을 수행하는 데 최소한 세 가지 방법이 있습니다. cd /usr/local /usr또는 cd local /또는 을 쓸 수 있습니다 cd local/bin bin. 아마도 더 많은 해결책을 생각해낼 수 있을 것입니다.

cdzsh의 구문은 입니다 cd OLD NEW. 이 명령은 $PWD와 일치 OLD하고 일치하는 부분을 으로 바꿉니다 NEW. 이는 현재 디렉토리를 기준으로 작동한다는 점을 명심해야 합니다 . 따라서 에 있는 동안 cd작성하면 와 같은 디렉토리가 없기 때문에 zsh에서 오류가 발생합니다 . 항상 슬래시를 조심하십시오.cd /usr/local usr/usr/local/bin/usr/local/bin/usr/bin

답변2

당신은 사용할 수 있습니다2인수 형식cd현재 작업 디렉토리의 하위 문자열을 대체합니다. 예를 들어 제거하려면 /local다음을 사용할 수 있습니다.

cd /local ''

슬래시가 여러 개 있어도 아무런 차이가 없으므로 cd /local /(결과는 /usr//bin이고 이중 슬래시는 단일 슬래시로 단순화됨) 또는 cd local /(결과도 /usr//bin)로 쓸 수도 있습니다.

또 다른 접근 방식은 명령줄 버전을 사용하는 것입니다. 기본 설정으로 cd $PWD명령줄에 입력한 다음 키를 누르세요 Tab. 변수 대체가 변수 값으로 바뀌고 원하는 대로 편집할 수 있습니다. 아래에서는 먼저 setopt auto_cd작성할 필요가 없습니다 cd. 구성으로 인해 Tab변수가 확장되지 않으면 . expand-or-complete대신 zle 함수를 호출하는 키를 사용하십시오 complete-word.

관련 정보