我正在开发一个跟踪研究活动的开源项目。在其中一个模块中,我想跟踪文件夹的命令历史记录到文件(.history
)中,该文件是同一个文件夹。
示例:
比方说,我正在处理文件夹/Users/ravi/test-project/
。
我使用少量命令在该文件夹中开始工作。假设我在文件夹中执行了以下命令。
$wget https://mywebsite.com/script.py
$chmod +xw script.py
$echo "append some text " > script.py
$python script.py
我希望将所有这些命令保存到文件夹的.history文件中,即。/Users/ravi/test-project/.history
。
非常感谢。提前谢谢。
答案 0 :(得分:3)
这实际上非常简单:
PROMPT_COMMAND="history -a; history -c; history -r; HISTFILE=\${PWD}/.history"
首先确保history is written and then re-read on every prompt *。然后它更改历史文件变量以使用当前目录。示例会话:
$ echo "$PWD"
/home/username
$ cd /tmp
$ echo "$PWD"
/tmp
$ cat ~/.history
echo "$PWD"
cd /tmp
$ cat .history
echo "$PWD"
如您所见,cd
命令存储在执行命令的目录的历史文件中,echo
命令存储在两个历史文件中。
需要注意的一个副作用是现在每个终端之间共享历史记录。我喜欢这个功能,但不是每个人都这样做。
此外,如果您正在寻找审核而不是历史的便利性,您应该考虑启用auditd或类似的东西。
*别担心,即使使用thousands of lines of history,它的速度也非常快。