用rcm管理隐藏文件

系统 Linux
许多 GNU/Linux 程序的一个特点是有个易于编辑的配置文件。几乎所有常见的自由软件都将配置设置保存在纯文本文件中,通常采用结构化格式,如 JSON、YAML 或“类似 ini” 的文件中。这些配置文件经常隐藏在用户的主目录中。

[[256150]]

 许多 GNU/Linux 程序的一个特点是有个易于编辑的配置文件。几乎所有常见的自由软件都将配置设置保存在纯文本文件中,通常采用结构化格式,如 JSON、YAML 或“类似 ini” 的文件中。这些配置文件经常隐藏在用户的主目录中。但是,基本的 ls 不会显示它们。UNIX 标准要求以点开头的任何文件或目录名称都被视为“隐藏”,除非用户特意要求,否则不会列在目录列表中。例如,要使用 ls 列出所有文件,要传递 -a 选项。

随着时间的推移,这些配置文件会有很多定制配置,管理它们变得越来越具有挑战性。不仅如此,在多台计算机之间保持同步是大型组织所面临的共同挑战。***,许多用户也对其独特的配置感到自豪,并希望以简单的方式与朋友分享。这就是用到 rcm 介入的地方。

rcm 是一个 “rc” 文件管理套件(“rc” 是命名配置文件的另一种约定,它已被某些 GNU/Linux 程序采用,如 screenbash)。 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) 是对上面这种情况的有用补充。如往常一样,请阅读手册页。它们包含了很多示例命令。

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2016-12-13 10:22:54

Mac OS X显示服务

2009-07-22 17:35:23

代码隐藏文件ASP.NET

2009-06-21 13:50:03

Linux隐藏文件

2017-11-23 15:25:28

命令隐藏windows

2022-11-03 10:36:30

Linux隐藏文件

2018-01-24 15:35:22

Linux隐藏文件管理器

2017-03-01 14:16:36

Linux文件管理器隐藏文件

2022-07-08 15:09:26

Linux

2018-03-05 18:50:22

Linux主目录隐藏文件

2015-10-12 16:20:55

隐藏文件夹Windows

2010-11-04 18:11:35

UI设计SilverlightWindows Pho

2010-09-14 09:24:40

CSS实例

2019-12-03 19:04:50

Windows 7Windows 10电脑

2018-01-31 14:50:04

LinuxmacOS .bashrc

2020-11-06 00:00:00

PHP技巧后门

2022-02-08 22:50:12

手机存储内存

2019-07-24 10:30:49

Windows 10文件Windows

2011-02-25 12:54:37

Proftpd隐藏

2020-12-02 11:35:52

Web安全代码泄露

2021-02-24 14:00:42

LinuxChromebook谷歌
点赞
收藏

51CTO技术栈公众号