【问题标题】:Move All Dotfiles Out of Root Directory将所有点文件移出根目录
【发布时间】:2015-06-28 19:13:20
【问题描述】:

我正在运行 macOS Sierra,并且正在将所有点文件移动到一个目录中。我已经为各种安装成功导出了许多环境变量(vagrantcomposeroh-my-zsh 等),这些变量允许我安装到我选择的子目录。

很遗憾,npmsubversionhomesteadgit 等程序不提供此类配置。

【问题讨论】:

  • 你为什么要这样做?这是一个非常长期存在的unix约定(3或4个十年),程序需要$HOME/.<program>中的配置文件或目录。试图颠覆这一点是在推大石头上坡,却没有立即明显的好处。
  • @NormanGray 今天,程序比以前多得多,使$HOME 目录完全膨胀。我想将我的所有设置和配置保留在源代码管理中。
  • 我同意将这些文件保存在源代码管理中是一个合理的目标。 rcs 可能是正确的工具,因为它“就地”存储修订。我自己,我将一些关键的点文件保存在一个单独的存储库中,并从$HOME 中一一链接到它们。我认为没有通用的解决方案。一种可能性是在 shell 启动脚本中重新定义 $HOME,但这不是万无一失的,产生其他后果!
  • @NormanGray:您可以使用homesick gem 之类的东西,而不是一一链接它们。它管理 git repo,并为您处理链接。

标签: configuration-files macos-sierra zshrc hidden-files dotfiles


【解决方案1】:

我使用dotfiles repository,将我的配置文件保存在git 下。 The idea is not new。我所做的是将它们移动到另一个目录,然后它们在主目录中创建指向它们的符号链接。它不会按照您的意愿清理主目录,因为它是配置文件的标准位置,如 Norman Gray 所述,但至少您可以对它们进行版本控制并在机器之间共享它们。

例子:

cd ~
mkdir dotfiles
mv .gitconfig dotfiles/.gitconfig
ln -s ~/dotfiles/.gitconfig ~/.gitconfig

【讨论】:

【解决方案2】:

检查收起。我就是这么用的。

我有一个 ~/dotfiles/ 目录,其中包含 vim/ X/ 等文件夹。

现在例如 vim/ 里面会有一个 .vimrc 文件,我可以从~/dotfiles 运行stow vim/,它会自动管理指向主目录的符号链接。

我也可以跑

cd ~/dotfiles
for folder in ./
  do [[ -d $folder ]] && stow -R $folder
done

更新我的所有点文件(-R 删除不再存在的旧符号链接)

这里有一个很好的介绍:http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2014-02-21
    • 2013-01-11
    • 1970-01-01
    • 2018-02-12
    相关资源
    最近更新 更多