有时我家里的其他人会短暂使用我的计算机,当他们这样做时,我有时不希望他们看到我的文件历史记录。我知道如何阻止 Bash~/.bash_history
暂时将条目写入文件。如何擦除菜单中显示的历史记录,例如在 中查看的文件eog
?
能否快速清除 shell 中最近的历史记录。这是不使用繁琐且清晰可见的路径,通过转到菜单,单击“最近的文件”,滚动经过我要删除的所有名称,然后单击“清除列表”?
答案1
历史记录已存在~/.local/share/recently-used.xbel
,但仅删除该文件还不够。如果您这样做,该Recent Files
条目会继续显示您访问过的文件,并且如果您使用创建“最近的文件”条目的应用程序打开一个文件,那么和旧的文件列表将再次写入该文件。
您想要做的是创建一个别名或脚本来删除该文件,然后将其清空:
rm ~/.local/share/recently-used.xbel
touch ~/.local/share/recently-used.xbel
或者做:
echo -n '' > ~/.local/share/recently-used.xbel
如果您不想那么引人注目,您还可以编辑该文件并删除历史记录中不需要的任何条目。它是一个 XML 文件,<bookmark>
其中的条目具有href
包含内容 URI 的属性。
例如,您可以使用xmlstarlet
以下命令删除您在桌面上单击的任何文件名以 food 开头的条目:
xmlstarlet ed -L -d "/xbel/bookmark[starts-with(@href, 'file:///home/$USER/Desktop/food')]" ~/.local/share/recently-used.xbel
答案2
运行此命令,在该位置创建样板 xbookmark/xml 文件~/.local/share/recently-used.xbel
。
cat > ~/.local/share/recently-used.xbel <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<xbel version="1.0"
xmlns:bookmark="http://www.freedesktop.org/standards/desktop-bookmarks"
xmlns:mime="http://www.freedesktop.org/standards/shared-mime-info"
>
</xbel>
EOF
然后运行sudo chattr +i ~/.local/share/recently-used.xbel
,这样没有root就永远无法修改。