事象
.zsh_history
をDropbox などで保存しておき、シンボリックリンクでリンクさせようとしたことはないだろうか。
ln -s ~/Dropbox/zsh/zsh_history .zsh_history
のような感じで。簡単にシンボリックリンクが作れると思うだろう。
しかし次のようなエラーになる。
ln: .zsh_history: File exists
「おお、ファイルを削除し忘れたかな」と思い、削除したとしよう
rm -f .zsh_history
そして再度リンクを作ろうとする
ln -s ~/Dropbox/zsh/zsh_history .zsh_history
しかし、
ln: .zsh_history: File exists
なぜだ…。
これは、コマンドを実行した時点でhistoryファイルが作成されるためである。
つまり、
コマンドを書いてEnter => ヒストリーファイル作成 => コマンド実行
の順番なので常に .zsh_history
ファイルが存在してしまうのである。
何この無限ループ...
解決方法
export HISTFILE=/path/to/dropbox_file
別の適当なファイルをHISTFILEにしてからやることで、この問題は解決する。
簡単けど、色々考えさせられて面倒ですね。
Dropbox上のファイルにHISTFILEが向くように .zshrc などで修正するのが良さそう。