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

これを行う1つの方法は、alias次のコマンドを使用することです。

alias cdgit="cd /foo; git status"

その後、実行しcdgitてディレクトリに移動して/foo実行します。git status

関連情報