LoginSignup
2
2

More than 3 years have passed since last update.

.zsh_historyをシンボリックリンクにしようとすると無限ループにハマるのを阻止する

Last updated at Posted at 2020-10-17

事象

.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 などで修正するのが良さそう。

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2