taf*_*kje 6 bash command-history working-directory
我想知道是否可以为每个当前工作目录保留一个包含历史记录的文件。因此,例如,如果我正在工作/user/temp/1/并键入一些命令,这些命令将被保存在/user/temp/1/.his或其他地方。我正在使用 bash。
小智 5
根据Groggle提供的答案,您可以在您的 ~/.bash_profile 中创建一个替代 cd (ch)。
function ch () {
cd "$@"
export HISTFILE="$(pwd)/.bash_history"
}
Run Code Online (Sandbox Code Playgroud)
每次调用 ch 时自动导出新的 HISTFILE 值。
bash 中的默认行为仅在您结束终端会话时更新您的历史记录,因此仅此一项就可以将历史记录保存到 .bash_history 文件中,无论您是从哪个文件夹中结束会话。这篇文章中提到了一个解决方案,并在此页面上进行了详细说明,允许您实时更新您的 HISTFILE。
一个完整的解决方案包括在您的 ~/.bash_profile 中再添加两行,
shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Run Code Online (Sandbox Code Playgroud)
更改历史模式以附加第一行,然后配置历史命令以在每个提示下运行。
| 归档时间: |
|
| 查看次数: |
3439 次 |
| 最近记录: |