
我通常安裝的大多數應用程式(opam、cargo、vscode、julia...)都在我的主資料夾中保留本地儲存。這種偏好有理由嗎?或者更好的是,其他選擇是否有缺點?
例如,有時建議此類檔案應位於 /var 或 ~/.local/share 中,但在「跨發行版」應用程式中使用這些資料夾可能會出現問題或煩惱。
您知道任何此類可能的問題嗎?
[我在這裡提出的三個問題中任何一個的任何答案都會令人滿意]
答案1
在 Rob Pike 的 Google+ 貼文中, 捷徑的教訓,給出這樣的解釋:
很久以前,當 Unix 檔案系統的設計正在製定時,條目
.
和..
就出現了,以使導航更容易。我不確定,但我相信..
在版本 2 重寫期間,當檔案系統變得分層時(它早期有一個非常不同的結構)。然而,當輸入 時ls
,這些檔案就會出現,因此 Ken 或 Dennis 為程式添加了一個簡單的測試。當時是用彙編程式寫的,但有問題的程式碼相當於這樣:if (name[0] == '.') continue;
該聲明比應有的內容短了一點,即
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
但是嘿,這很容易。
結果有兩件事。
首先,開了一個不好的先例。許多其他懶惰的程式設計師透過同樣的簡化引入了錯誤。以句點開頭的實際檔案在應該計數時通常會被跳過。
其次,更糟的是,創建了「隱藏」或「點」檔案的想法。結果,更多懶惰的程式設計師開始將檔案放入每個人的主目錄中。我在用來輸入此內容的機器上沒有安裝那麼多東西,但我的主目錄有大約一百個點文件,我什至不知道其中大部分是什麼,也不知道它們是否仍然需要。透過我的主目錄的每個檔案名稱評估都會因這種累積的污泥而減慢。
我很確定隱藏文件的概念是一個意想不到的結果。這肯定是個錯誤。
(對於那些反對點文件有某種用途的人,我不否認這一點,但反駁說,是這些文件有這種用途,而不是其名稱的約定。它們可以很容易地位於$HOME/cfg 或$ HOME 中/lib,這就是我們在計劃 9 中所做的,其中沒有點文件,可以吸取教訓。
所以我的理解是:
當這些「點檔案」變得不可見時,其他程式設計師介入並決定儲存他們寶貴的配置資料的位置與 和.
文件一起位於點文件中..
。由於一開始的文件層次結構不是很發達,它們最終都位於 $HOME 目錄中,很快這就成為每個人都遵守的不成文約定,追隨創始人的腳步。
這導致了以下怪物的出現:
參考 :