dotfile 和 dot config 有什麼區別?
例子:
.bashrc
.config/fish/config.fish
我想知道哪個更常見,它們各自有什麼優缺點。我想一個點文件會更容易更改,因為它就在主目錄中,但它似乎
.config
更容易隨身攜帶,因為它是一個包含所有內容的目錄。應用程序通常只支持一個,還是兩者都支持?
選擇一個,然後為每個應用程序符號連結是個好主意嗎?例如,如果我想要一個點文件,我可以使用
ln .config/fish/config.fish .fish
並且只編輯.fish
,對嗎?
點文件是較舊的形式,我相信完全避免它們會很困難,除非您使用的發行版堅持對包含的每個軟體進行修補以使用
.config
目錄樹而不是普通的點文件。許多舊應用程序在使用特定點文件方面有著悠久的歷史;有些可能有自己的點目錄。其他人可能實際上兩者都有:例如,vim
supports.vimrc
,還有.vim/
包含多個文件和特定子目錄結構的目錄。
.config
目錄結構基於XDG Base Directory Specification。它最初被 GNOME 和 KDE 等桌面環境所採用,因為它們最初都有很多每個使用者的配置文件,並且都已經獨立選擇了一些類似的子目錄解決方案。對於 GUI 文件管理器,隱藏文件的概念可能會產生問題:如果您選擇不顯示預設以點開頭的文件和目錄名,遵循經典的 unix 樣式行為,點文件的存在和功能將不容易可由 GUI 使用者發現。如果您選擇不隱藏點文件和目錄,您的主目錄中就會出現很多混亂,這在某種意義上是您個人工作空間的絕對頂級。這兩種方式都會讓人不高興。
將每個使用者的配置文件推送到專用的子目錄可能是一個有吸引力的解決方案,因為當“隱藏”文件顯示在 GUI 中時,只有一個子目錄而不是多個點文件和/或點目錄將減少混亂,並且在易用性上的差異並不算太大。但它與長期以來的使用者期望背道而馳:(一些)點文件“一直都在這裡並以這樣的方式命名*”*。
這將是一個非常基於意見的問題。
如果點文件與登錄訪問或其他一些特權訪問控制無關,則可以使用符號連結從一種約定橋接另一種約定,無論您喜歡哪種方式。但是如果你真的經常編輯一個特定的配置文件以至於易於訪問很重要,也許你可能想要創建一個 shell 別名或桌面圖示/菜單項,以便立即在你最喜歡的編輯器中打開實際的配置文件(使用絕對路徑名)反而?它可能更方便。
某些點文件和目錄由特權程序(例如,作為身份驗證和訪問控制的一部分)訪問
~/.ssh
,例如~/.login_conf
等,它們通常不能被符號連結替換,因為這些程序需要實際文件而不是指定位置的符號連結為了禁止各種詭計和利用。如果要重新定位這些文件,必須通過修改適當程序的配置來完成,通常是系統範圍的。