歡迎光臨
每天分享高質量文章

用 rcm 管理隱藏檔案 | Linux 中國

許多 GNU/Linux 程式的一個特點是有個易於編輯的配置檔案。這些配置檔案經常隱藏在用戶的主目錄中。
— Link Dupont
致謝
譯自 | fedoramagazine.org 
作者 | Link Dupont
譯者 | LCTT / geekpi

許多 GNU/Linux 程式的一個特點是有個易於編輯的配置檔案。幾乎所有常見的自由軟體都將配置設置儲存在純文本檔案中,通常採用結構化格式,如 JSON、YAML 或“類似 ini”[1] 的檔案中。這些配置檔案經常隱藏在用戶的主目錄中。但是,基本的 ls 不會顯示它們。UNIX 標準要求以點開頭的任何檔案或目錄名稱都被視為“隱藏”,除非用戶特意要求,否則不會列在目錄串列中。例如,要使用 ls 列出所有檔案,要傳遞 -a 選項。

隨著時間的推移,這些配置檔案會有很多定製配置,管理它們變得越來越具有挑戰性。不僅如此,在多台計算機之間保持同步是大型組織所面臨的共同挑戰。最後,許多用戶也對其獨特的配置感到自豪,並希望以簡單的方式與朋友分享。這就是用到 rcm 介入的地方。

rcm 是一個 “rc” 檔案管理套件(“rc” 是命名配置檔案的另一種約定,它已被某些 GNU/Linux 程式採用,如 screen 或 bash)。 rcm 提供了一套命令來管理和列出它跟蹤的檔案。使用 dnf 安裝 rcm。

開始使用

預設情況下,rcm 使用 ~/.dotfiles 來儲存它管理的所有隱藏檔案。一個被管理的隱藏檔案實際儲存在 ~/.dotfiles 目錄中,而它的符號鏈接會放在檔案原本的位置。例如,如果 ~/.bashrc 由 rcm 所管理,那麼詳細串列將如下所示。

  1. [link@localhost ~]$ ls -l ~/.bashrc
  2. lrwxrwxrwx. 1 link link 27 Dec 16 05:19 .bashrc -> /home/link/.dotfiles/bashrc
  3. [link@localhost ~]$

rcm 包含 4 個命令:

◈ mkrc – 將檔案轉換為由 rcm 管理的隱藏檔案
◈ lsrc – 列出由 rcm 管理的檔案
◈ rcup – 同步由 rcm 管理的隱藏檔案
◈ rcdn – 刪除 rcm 管理的所有符號鏈接

在兩台計算機上共享 bashrc

如今用戶在多台計算機上擁有 shell 帳戶並不罕見。在這些計算機之間同步隱藏檔案可能是一個挑戰。這裡將提供一種可能的解決方案,僅使用 rcm 和 git。

首先使用 mkrc 將檔案轉換成由 rcm 管理的檔案。

  1. [link@localhost ~]$ mkrc -v ~/.bashrc
  2. Moving...
  3. '/home/link/.bashrc' -> '/home/link/.dotfiles/bashrc'
  4. Linking...
  5. '/home/link/.dotfiles/bashrc' -> '/home/link/.bashrc'
  6. [link@localhost ~]$

接下來使用 lsrc 驗證串列是否正確。

  1. [link@localhost ~]$ lsrc
  2. /home/link/.bashrc:/home/link/.dotfiles/bashrc
  3. [link@localhost ~]$

現在在 ~/.dotfiles 中創建一個 git 倉庫,並使用你選擇的 git 倉庫托管設置一個遠程倉庫。提交 bashrc 檔案並推送一個新分支。

  1. [link@localhost ~]$ cd ~/.dotfiles
  2. [link@localhost .dotfiles]$ git init
  3. Initialized empty Git repository in /home/link/.dotfiles/.git/
  4. [link@localhost .dotfiles]$ git remote add origin git@github.com:linkdupont/dotfiles.git
  5. [link@localhost .dotfiles]$ git add bashrc
  6. [link@localhost .dotfiles]$ git commit -m "initial commit"
  7. [master (root-commit) b54406b] initial commit
  8. 1 file changed, 15 insertions(+)
  9. create mode 100644 bashrc
  10. [link@localhost .dotfiles]$ git push -u origin master
  11. ...
  12. [link@localhost .dotfiles]$

在第二台機器上,克隆這個倉庫到 ~/.dotfiles 中。

  1. [link@remotehost ~]$ git clone git@github.com:linkdupont/dotfiles.git ~/.dotfiles
  2. ...
  3. [link@remotehost ~]$

現在使用 rcup 更新受 rcm 管理的符號鏈接。

  1. [link@remotehost ~]$ rcup -v
  2. replacing identical but unlinked /home/link/.bashrc
  3. removed '/home/link/.bashrc'
  4. '/home/link/.dotfiles/bashrc' -> '/home/link/.bashrc'
  5. [link@remotehost ~]$

改寫現有的 ~/.bashrc(如果存在)並重啟 shell。

就是這些了!指定主機選項 (-o) 是對上面這種情況的有用補充。如往常一樣,請閱讀手冊頁。它們包含了很多示例命令。


via: https://fedoramagazine.org/managing-dotfiles-rcm/

作者:Link Dupont[3] 選題:lujun9972 譯者:geekpi 校對:wxy

赞(0)

分享創造快樂