履歴ファイルを一時的に凍結します。

履歴ファイルを一時的に凍結します。

次の2つの質問は、特定のコマンドがシェル履歴に追加されるのを防ぐ方法について説明します。

答えは、ユーザーが利用できるソリューションに焦点を当てています。各コマンドにプレフィックスを追加する(たとえば、スペースを含む)私が探しているのは、一度だけ実行すると効果的に動作できるコマンドです。必ずぶら下げる「マイ履歴ファイルは、後で別のコマンドを使用して固定を解除するまでシェルにあります。

たとえ歴史は「冬の王国":

  1. 私は私のコマンドを可能にしたい読む既存の履歴ファイルで(たとえば、コマンド検索を実行できるように)、たとえば標準のオートコンプリートをC-r実行します。

  2. 私が実行しているすべてのコマンドが履歴に追加されないようにしたいと思います。

zshを使ってこれを行うにはどうすればよいですか?

ベストアンサー1

fc -pを使用して新しい履歴リストを起動し、fc -P古い履歴リストを呼び出すことができます。プレーン後には空のfc -p履歴レコードが取得されます。fc -p履歴を読み取るファイル名を渡すことができるため、履歴が保存され、すぐに使用できます。呼び出し前の値が復元fc -pされます。fc -PHISTFILEfc -p

freeze_history () {
    fc -A
    fc -p $HISTFILE
    unset HISTFILE
}
unfreeze_history () {
    fc -P
}

残念ながら、履歴はメモリから直接編集することはできず、ファイルから読み取って人工的にのみ埋めることができます。

おすすめ記事