다음은 "The Productive Programmer" 책에 나오는 명령줄 팁입니다.
pushd `which java`/..
작성자는 이 명령이 일시적으로 실행 가능한 명령이 있는 디렉터리로 이동할 수 있다고 말했습니다.자바삶.
Linux에서 이 명령을 입력하면 Bash가 다음과 같이 불평합니다.
bash: pushd: /usr/bin/java/..: Not a directory
/usr/bin/java/..
또한 디렉토리를 다음과 같이 직접 변경해 보았습니다 .
$ pushd /usr/bin/java/..
bash: pushd: /usr/bin/java/..: Not a directory
나는 왜 실패했는가? 디렉토리 변경을 사용할 수 없는 이유는 무엇입니까 /..
? 동일한 작업을 수행하기 위해 이 명령을 어떻게 수정합니까?
답변1
/usr/bin/java
디렉토리가 아니라 파일이기 때문에 실패합니다 .
넌 할 수있어:
cd "$(dirname "$(which java)")"
또는 매개변수 확장을 사용하십시오 zsh
.
cd "${"$(which java)"%/*}"