我正在寻找 bash 命令的 zsh 等效项history -c
,换句话说,清除当前会话的历史记录。在 zshhistory -c
中返回 1 并带有错误消息history: bad option: -c
。
只是为了澄清,我不是在寻找删除内容的方法$HISTFILE
,我只是想要一个命令将历史记录重置为我打开终端时的相同状态。删除的内容$HISTFILE
与我想要的相反:它删除了我想要保留的历史记录并保留了我想要删除的历史记录(因为当前会话的历史记录会附加到它上面,无论它的内容之前是否被删除)。
我现在使用一种解决方法,但它显然不太理想:在当前会话中,我设置HISTFILE=/dev/null
并关闭并重新打开终端。这会导致关闭会话的历史记录不会附加到$HISTFILE
. 但是,我真的很喜欢history -c
bash 之类的东西,它比必须关闭并重新启动终端要优雅得多。
相当于
history -c
on zsh 是history -p
要获得空历史记录,请暂时设置
HISTSIZE
为零。如果您想从此 shell 实例中删除新历史记录但保留最初加载的旧历史记录,请按上述方式清空历史记录,然后重新加载保存的历史记录
fc -R
。如果不希望
erase_history
通话记录在历史记录中,可以在zshaddhistory
hook中将其过滤掉。删除一个特定的历史元素(在 bash 中)是另一回事。我认为除了以下方法之外别无他法:
history -d NUM
fc -AI
附加到历史记录文件,或fc -WI
覆盖历史记录文件,具体取决于您的历史共享偏好。$HISTFILE
)。fc -R
.尝试运行以下命令:
它将杀死当前终端而不保存会话历史记录。
以下内容也可能有用:
这将删除历史文件并终止当前终端而不保存会话历史。
类似于@Gimi 的答案,但更温和一点,我没有删除文件,而是删除了所有内容。
或者