Emacs にはシェルがディレクトリを変更したことを知る手段がありません. これは Unix の根本的な制限に起因するものです. Emacs は "cd" コマンドからディレクトリを追跡しています. "cd" コマンドでディレクトリを指定するときに, 変数を使ったり ("cd $HOME/bin") または シェルのメタ・キャラクタを使ったり ("cd ../lib*") すると, Emacs はシェルのカレント・ディレクトリの追跡に失敗します. 非常に多くの解決法や拡張法が標準のシェル・モードに対して与えられています. これらの拡張シェル・モードを捜してみてください (質問 17 参照).