最新のシェルの履歴機能をパス範囲に制限する方法はありますか?
私のタスクコンテキストはファイルシステムへのパスに分割され、シェルアクティビティパターン(たとえば、繰り返し実行されるコマンド)は各「プロジェクト」ごとに異なる傾向があります。履歴機能の範囲を現在のパス(またはサブパス)で実行されているコマンドに制限できればよいでしょう。
ベストアンサー1
これは簡潔な答えではありませんが、シェルとして使用する場合はオプションがありますbash
。でこれを行うことができます.bashrc
。
たとえば、
alias a='cd /tmp/A ; history -w ; history -c ; export HISTFILE=/home/user/.a_history ; history -r $HISTFILE'
alias b='cd /tmp/B ; history -w ; history -c ; export HISTFILE=/home/user/.b_history ; history -r $HISTFILE'
次に、次のように入力しますa
。
- プロジェクトディレクトリに移動します
- 現在の履歴が保存されます(
history -w
) - これにより、メモリに保存されている履歴が初期化されます(
history -c
)。 - プロジェクト履歴ファイルはに設定されて
/home/user/.a_history
読み込まれますhistory -r
。