zsh文書を読み、非対話モードでコンテンツ全体にアクセスしないhistory
。検索ユーティリティをスクリプト化できるようにこれを実装する方法を探しています。私が試したこと:fc
~/.zsh_history
➜ ~ fc -l 0 1
1 ls
➜ ~ echo $HISTFILE
/Users/username/.zsh_history
➜ ~ zsh -c 'echo $HISTFILE'
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; echo $HISTFILE'
/Users/username/.zsh_history
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; history'
zsh:fc:1: no such event: 1
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; fc -l 0 1'
zsh:fc:1: no events in that range
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; fc -R; fc -l 0 1'
zsh:fc:1: no events in that range
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; fc -R -l 0 1'
<NO OUTPUT>
Bashでは履歴オプションを有効にできますが、set -o history
zshには存在しません。
別の方法はファイルに直接アクセスすることですが、そうすることで~/.zsh_history
フォーマットのサポートが失われます。パイプを介して上記のフォーマットを実行できる組み込みユーティリティはありますか?history
fc
~/.zsh_history
答え1
fc -R
履歴ファイルを読み取るために呼び出されます。これは最後の$HISTSIZE
項目のみを読み取るため、HISTSIZE
呼び出す前に大きな値に設定してくださいfc
。
HISTSIZE=999999999
fc -R ~/.zsh_history