有人建议使用此命令来删除持久的 shell 历史记录
history -c; >$HISTFILE
在我知道它的确切作用之前,我只是不想执行它,你能帮忙吗?
答案1
这是两个命令,用 分隔;
,而不是一个。你有history -c
,然后你有> $HISTFILE
。您没有在问题中指定,但假设您正在使用bash
,您可以运行help history
以查看该history
命令是如何工作的。您将看到该-c
选项将:
-c clear the history list by deleting all of the entries
因此history -c
会删除当前 shell 会话中的所有历史记录。
全局历史记录保存在变量中存储的文件中$HISTFILE
。默认情况下,这是~/.bash_history
:
$ echo $HISTFILE
/home/terdon/.bash_history
在 bash shell 中,>
不带命令的重定向运算符将清空文件。例如:
$ echo "Hello world!" > file
$ cat file
Hello world!
$ > file
$ cat file
$
正如您在上面看到的,运行> file
清空了文件,因此运行> $HISTFILE
将清空您的历史文件。
因此,将所有这些结合在一起,history -c; > $HISTFILE
将清除当前 shell 的历史记录,然后还会删除用户存储的所有历史记录。