.zhistoryへのソース管理とシンボリックリンク

.zhistoryへのソース管理とシンボリックリンク

私のホームディレクトリにあるドットファイルをgitソース管理下の別のフォルダにある実際のファイルにシンボリックリンクしました。これはうまく機能しますが、何らかの理由で問題があります.zhistory

$ echo $HISTFILE
/Users/amelio/.zhistory
$ cd & ln -s $DOT_FILES_REPO/.zhistory .
$ fc -W && fc -R

上記のコマンドを実行した後、私が見る.zhistoryものはいいえ最後のコマンドの後のシンボリックリンク。なぜ?.zhistory私のホームディレクトリにある他のファイルへのシンボリックリンクをどのように使用できますか?

ベストアンサー1

zshが履歴ファイルを更新すると、一時ファイルが作成され、次の場所に移動します。

print the history >.zhistory.new
mv .zhistory.new .zhistory

以前にシンボリックリンクだったら、.zhistoryそれ以降はそうではありません。

このアプローチの利点は、zshがクラッシュしても(エラー、突然のシャットダウン、突然の再起動のため)、履歴ファイルが影響を受けないことです。特に、履歴ファイルは決して切り捨てられたり無効になります。

履歴ファイルを別の場所に保存するには、シンボリックリンクを使用せずに代わりに変数を設定してくださいHISTFILE

おすすめ記事