能否获取特定目录下执行的命令历史记录?
能否获取特定目录下执行的命令历史?
首先直接给你100%确定的结论:默认情况下完全做不到。常见的shell(比如bash、zsh)原生的命令历史不会记录你执行命令时所在的目录——默认的history日志只存命令内容、执行时间(如果开启了HISTTIMEFORMAT),根本没有目录维度的信息。所以如果之前没有做过特殊配置,你没法回溯出过去在某个特定目录下执行过哪些命令,这点可以放心告知你的项目经理。
不过如果以后需要实现这个功能,是可以通过配置shell来让历史记录带上目录信息的,举个bash的实操例子:
你可以在~/.bashrc里添加这段配置:
# 每次执行命令后,把当前目录和最后一条命令追加到自定义历史文件 PROMPT_COMMAND='history -a; echo "$(pwd) $(history 1)" >> ~/.dir_specific_history'
保存后重新加载bash(source ~/.bashrc),之后所有执行的命令都会和当前目录一起被记录到~/.dir_specific_history里。
之后要查询某个目录(比如/home/user/projects)下的命令,只需要用grep过滤:
grep "^/home/user/projects" ~/.dir_specific_history
但要注意:这个配置是从你设置之后才开始生效的,之前的命令历史依然没有目录信息,没法回溯。
内容的提问来源于stack exchange,提问作者Sean Davey
相关产品推荐
相关产品推荐

