Linux
由於我的文本編輯器而導致硬連結失去時該怎麼辦
所以,我有一個文件,在這種情況下,我們稱之為
$HOME/Documents/hello.txt
. 我會在裡面寫一些文字:Hello, welcome to my text file
我將在這裡硬連結這個文件:
$HOME/Documents/Backup/hello.txt
.好的,很好,這現在是硬連結的。如果我寫入原始文件,硬連結將被更新:
echo "Hello again" >> $HOME/Documents/hello.txt cat $HOME/Documents/hello.txt Hello, welcome to my text file Hello again cat $HOME/Documents/Backup/hello.txt Hello, welcome to my text file Hello again
現在,我的問題是,每當我使用大量創建臨時文件的程序打開任一文件(硬連結對應文件)時,它都會失去其連結關係,並且兩個文件都不會再更新另一個文件。
那麼,在這種情況下我能做些什麼呢?
注意:在這種情況下我不能使用符號連結,因為我正在使用 Github 的硬連結來備份一些文件,而 Git 不遵循符號連結。
正如 mosvy 在此評論中已經說過的那樣,大多數編輯在他們稍後替換(刪除)的原始文件的副本中進行編輯。雖然這增加了安全性,但它會破壞硬連結。
但是,可以將某些編輯器(例如 GNU Emacs)配置為就地執行文件編輯,這意味著它們可以直接更改原始文件,就像您在 shell 中所做的那樣。例如,這個問題和相應的答案正是討論了您關於 Gnu Emacs 的問題。所以你的編輯器的配置將是第一個要看的點。
由於您只需要 Git 的硬連結(?)——不幸的是,您的工作流程不是很詳細——您很可能可以在送出您隨後喜歡推送到 GitHub 的內容之前立即使用 Git 掛鉤重新建立正確的硬連結:
pre-commit
鉤子似乎是一個很有前途的候選者。有關詳細資訊,請參見手冊頁githooks(5)。