【发布时间】:2015-12-06 22:41:47
【问题描述】:
[使用 zsh,但 bash 可能相同] 我正在尝试在 chdir <folder> 上以伪代码获取每个文件夹的自定义历史记录:
cd FOLDER
flush current history
update history from file FOLDER/.history
到目前为止,包装在别名中,运行子shell,对我不起作用,对它的了解不够,即在下面尝试过,它确实为新的子shell设置了HISTFILE,但没有清除旧历史并从新 HISTFILE 中重新读取:
function mycd {
chdir $@
export HISTFILE=`pwd`/.history zsh
}
alias cd='chdir;mycd;'
【问题讨论】:
-
Bash 和 zsh 历史机制完全不同。在 Zsh 中,您使用
fc内置函数与历史记录进行交互。在zsh.sourceforge.net/Doc/Release/Shell-Builtin-Commands.html 中了解它。此外,您应该定义一个chpwd钩子,而不是别名cd。