我怎样才能阻止 Less 存储历史记录?

我怎样才能阻止 Less 存储历史记录?

每次我在 中搜索一个术语时less,它都会将我的搜索存储在文件中.lesshst。我该如何停止这种行为?

答案1

打开终端并.lesskey在主文件夹中创建一个文件,并将以下内容附加到其中:

#env
LESSHISTSIZE=0

如果您的主文件夹中已有该文件.lesshst,请将其删除并输入命令

lesskey

您不应该在这里收到任何错误。less从现在起,这将不会存储任何历史记录,直到您更改.lesskey文件为止。

less 的手册页

环境变量

   Environment variables may be specified either in the system environment
   as usual, or in a lesskey  (1)  file.   If  environment  variables  are
   defined  in  more  than one place, variables defined in a local lesskey
   file take precedence over variables defined in the system  environment,
   which take precedence over variables defined in the system-wide lesskey
   file.

最小尺寸

          The maximum number of commands to save in the history file.  The
          default is 100.

编辑:

从评论中,我找到了一种更好的方法来防止少保留历史文件。

.lesskey主文件夹中的文件中,附加以下内容:

LESSHISTFILE=-

或者

LESSHISTFILE=/dev/null

如果你把它放在你的文件中,它将会起作用,但是如果你的文件中相同变量~/.bashrc有其他值,它将具有较低的优先级。.lesskey

你可能想看看这个:

答案2

将其添加到您的~/.bashrc

export LESSHISTFILE=-

为了验证,您现在可以启动一个新 shell,删除该~/.lesshist文件,然后开始使用less。它不应该~/.lesshist再创建新文件。


请注意, 很export重要。如果省略它,LESSHISTFILE变量似乎已设置(echo $LESSHISTFILE将输出-),但它不会传递给less

答案3

LESSHISTFILE这基本上是一个通过命令前缀环境操作来覆盖的 bash 技巧。

history | LESSHISTFILE=/dev/null less

这样做的目的是将命令的输出通过管道传输history到命令中less,同时使用命令前缀来操作暴露给命令的环境less

这在bash 参考作为:

任何简单命令或函数的环境都可以通过在它前面加上参数赋值来临时增强,如 Shell 参数中所述。这些赋值语句仅影响该命令所见的环境。

更多内容具体的使用https://stackoverflow.com/a/52208927/117471

相关内容