cd를 사용하여 디렉토리로 이동할 때 쉘 스크립트 실행 [중복]

cd를 사용하여 디렉토리로 이동할 때 쉘 스크립트 실행 [중복]

특정 디렉토리에 들어갈 때 스크립트가 실행되도록 설정할 수 있나요 cd?

예를 들어 /foo프로젝트가 포함된 디렉터리인 경우 자동으로 실행할 수 있는 항목 이나 일부 스크립트가 git있습니까 ?cd /foogit statusnpm

답변을 에 엄격하게 연결하지 마십시오 git. 이것이 다른 명령/스크립트일 수 있다고 상상해 보십시오.

답변1

cd이를 원하는 처리를 추가하는 함수로 바꿀 수 있습니다 .

cd() {
    builtin cd "$@"
    # Do whatever you want here
}

답변2

내 안에는 .bashrc:

function cd() {
  command cd "$@" || return

  if [[ -d .git ]]
  then
    git status --short
  else
    ls -al
  fi
}

필요에 따라 다양한 항목을 처리하기 위해 추가 조건을 만들 수 있습니다.

참고: 명령에 대한 참조를 삭제하므로 함수가 자신을 호출하고 영원히 반복되는 것을 방지하려면 또는 를 cd사용해야 합니다 . 따라서 어떤 사람들은 이 기능의 이름을 바꾸는 것이 유용하다고 생각할 수도 있습니다.command cdbuiltin cd\cd

답변3

이를 수행하는 한 가지 방법은 alias다음 명령을 사용하는 것입니다.

alias cdgit="cd /foo; git status"

그런 다음 실행 cdgit하고 디렉토리로 이동하여 /foo실행합니다.git status

관련 정보