sh: PWD를 대화형으로 편집하는 명령이 있나요?

sh: PWD를 대화형으로 편집하는 명령이 있나요?

사용자가 현재 디렉터리를 편집한 다음 값을 편집할 수 있도록 하는 readlinecurrent로 시작하는 호출 또는 유사한 명령을 찾고 있습니다 . 예를 들어$PWDcd

> cd ~/a/b/c/d
> pwd
> /home/alice/a/b/c/d

그런 다음 제안된 icd명령("interactive cd", imv다음에서 영감을 얻었음)을 실행합니다.도구 이름 바꾸기). 사용자에게 다음과 같은 메시지를 표시합니다.

> icd
icd> /home/alice/a/b/c/d

그런 다음 사용자는 Alt-b, Alt-b, Alt-t를 누를 수 있으며 결과는 다음과 같습니다.

icd> /home/alice/a/c/b/d

(Alt-t 전치 bc)

Enter 키를 누른 후 이 icd명령은 현재 디렉터리를 /home/alice/a/c/b/d.

이상적으로는 icd자동 완성 기능이 있을 것입니다. 현재 값이 기존/유효한 디렉터리인지 여부를 시각적으로 표시하는 기능도 있습니다.

이는 zsh에서 다음을 입력하여 거의 수행할 수 있습니다.

> cd `pwd`

그런 다음 Tab 키를 누릅니다. 그러나 이와 같은 명령은 icd키 입력을 저장합니다.

관련된:대화형 CD(카탈로그 브라우저)

답변1

bash당신을 지원하는 다른 쉘 의 경우 readline이것을 사용할 수 있습니다

icd() { local a; read -ei "${1:-$PWD}" -p "$FUNCNAME> " a && cd "$a"; }

용법

icd          # Starts editing with $PWD
icd /root    # Starts editing with /root

답변2

적어도 zsh에서는 가능합니다. 비슷한 것들이 있어요fzf에 내장, 여기서 Alt+Ccd를 눌러 퍼지 선택 항목이 있는 디렉토리로 들어갈 수 있습니다.

icdfzf 대신 제안한 도구를 사용할 수도 있습니다 .

POSIX 호환 방식으로 수행할 수 있다고 생각하지 않습니다.

관련 정보