명령이 전달되는 디렉터리의 명령줄을 입력하세요.

명령이 전달되는 디렉터리의 명령줄을 입력하세요.

다음과 같은 명령을 사용하고 싶습니다.

 which node && cd $_

바이너리가 있는 경우 해당 디렉터리로 이동하지만 which 명령은 바이너리의 모든 경로와 이름을 반환하므로 오류가 발생합니다.

 bash: cd: node: No such file or directory

나를 올바른 위치로 이동시켜줄 새로운 명령을 찾고 있습니다.

답변1

어느 것을 사용하지 말아야합니까?csh(귀하가 해당 또는 변형 에 속하지 않는 한 tcsh) 이미 손상되었습니다. 사용명령 -v 노드대신에.

POSIX 견적디렉토리 이름경로 이름의 디렉터리 부분을 가져오는 명령:

cd "$(dirname -- "$(command -v node)")"

또는 변수를 사용하여 경로 이름을 저장하면 다음을 호출할 수 없습니다 dirname.

nodepath=$(command -v node)
cd "${nodepath%/*}"

답변2

한편, ZShell에서는 다소 추악하고 어색한 구성이 필요합니다.

cd -- $commands[node]:h

이는 디렉터리 이름에 공백이 있는 경우에도 작동합니다( shwordsplit이해할 수 없는 이유로 옵션이 활성화되지 않은 경우).

답변3

cd $(dirname $(which bash))

행운을 빌어요:)

관련 정보