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

당신은 그것을 사용할 수 있습니다두 개의 매개변수 형식cd현재 작업 디렉터리의 하위 문자열을 바꿉니다. 예를 들어 삭제하려면 /local다음을 사용할 수 있습니다.

cd /local ''

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

또 다른 방법은 명령줄 버전을 사용하는 것입니다. 기본 설정을 사용하여 cd $PWD명령줄에 입력하고 키를 누릅니다 Tab. 변수 대체는 원하는 대로 편집할 수 있는 변수 값으로 대체됩니다. 아래에는 먼저 작성할 setopt auto_cd필요가 없습니다 . cd구성으로 인해 변수가 확장되지 않는 경우 대신 Tabzle 함수를 호출하는 키를 사용하십시오 .expand-or-completecomplete-word

관련 정보