该逻辑适用于许多其他目标。如何从 /home/ 文件系统读取每个用户的 .sh_history?如果有数千个怎么办?
答案1
这很难。您必须解释每个用户的~/.bashrc
以及每个 shell 的所有“启动文件”,才能知道“历史文件”到底是什么。
比如我的,将我的历史文件设置为~/.history/history.$$
,目前我有1372个.history
文件。
我的~/.bashrc
片段:
[[ -d ~/.history ]] || mkdir --mode=0700 ~/.history
[[ -d ~/.history ]] && chmod 0700 ~/.history
HISTFILE=~/.history/history.$$
# close any old history file by zeroing HISTFILESIZE
HISTFILESIZE=0
# then set HISTFILESIZE to a large value
HISTFILESIZE=4096
HISTSIZE=4096
其他用户可能会做其他事情,可能会将他们的.history
文件命名为其他名称,使用其他 shell,...