나는 이것을 가지고있다:
cd $(dirname $(dirname $(dirname "$0"))) &&
그러면 프로젝트 루트 디렉터리로 이동됩니다.
내가 할 수 있는 간단한 방법이 있나요?
cd 3 && # not quite, but you get the idea
아니면 어쨌든, 왜 몰랐나요?
아마도 다음과 같은 명령이 이상적일 것입니다.
cdx 3 &&
cd
3이 파일이나 디렉토리가 아니라는 것을 모르기 때문입니다 .
답변1
너하다cd ..
이것이 상위 디렉토리로 이동한다는 것을 알고 계셨습니까 ? 따라서 귀하의 질문을 올바르게 이해하면 다음을 사용할 수 있습니다.
cd $(dirname $0)/../../..
답변2
이 함수를 정의하십시오:
dirx(){ a=$0;for((i=0;i<$1;i++));do a=${a%/*};done;cd "$a"; }
그리고 다음을 수행하십시오:
$ dirx 3
답변3
다음에서 매개변수 확장을 사용할 수 있습니다 bash
.
cd "${0%/*/*/*}"
훨씬 더 간단합니다 zsh
.
cd $0:h:h:h