Com zsh , você poderia fazer:
mkdir -p ~/.zsh/dirhist
E adicione ao seu ~ / .zshrc:
HISTSIZE=1000
SAVEHIST=10000
setopt HIST_SAVE_NO_DUPS INC_APPEND_HISTORY
HISTFILE=~/.zsh/dirhist/${PWD//\//@}
chpwd() {
[[ $PWD = $OLDPWD ]] || fc -Pp ~/.zsh/dirhist/${PWD//\//@}
}
chpwd() é chamado sempre que o diretório atual é alterado. Lá, redefinimos o arquivo de histórico para algo como ~/.zsh/dirhist/@foo@bar quando você está em cd to /foo/bar .