在计算机之间同步bash配置文件


12

我的.bash_profile中有很多东西。问题是,我经常使用约3台计算机,而我厌倦了不得不到处复制粘贴我的偏好设置。其中两个运行Ubuntu 10.10,一个运行OSX。我想知道是否有一种使用Dropbox共享单个prefs文件的方法。例如,当bash开始时,告诉它检查~/Dropbox/Bash/.bash_profile

虽然,我还能告诉emacs以~/Dropbox/Emacs/.emacs某种方式看吗?


2
聪明的问题!
桑福德,2010年

我似乎无法对(最佳)所选答案发表评论。我不知道这是否是特定于osx / mac的东西,但是如果[-f $ DROPBOX_PROFILE]; 然后 。$ DROPBOX_PROFILE fi如果是[-f $ DROPBOX_PROFILE],则应为DROPBOX_PROFILE =“ $ HOME / Dropbox / Bash / .bash_profile”;然后 。$ DROPBOX_PROFILE fi希望有帮助。
杰森(Jason)

只是为了更清楚:@杰森的调整是用双引号来代替单引号,并与“$ HOME”在DROPBOX_PROFILE的定义来代替“〜”
sprugman

Answers:


17

〜/ .bash_profile

DROPBOX_PROFILE='~/Dropbox/Bash/.bash_profile'
if [ -f $DROPBOX_PROFILE ]; then
    . $DROPBOX_PROFILE
fi

〜/ .emacs

(load "~/Dropbox/Emacs/.emacs")

3
我个人认为这source比点运算符更具可读性(并且可以谷歌搜索),但这是您的答案,因此我不会对其进行编辑。除此之外,+ 1是一个很好的答案。
Hello71 2011年

@ Hello71您能否详细说明source一下。我很感兴趣 谢谢!
约书亚·品特

@ Hello71啊,我想我现在明白你的意思了。我完全同意。使用.比使用更神秘source
约书亚·品特

如果您的路径中有空格,例如当您有一个业务Dropbox并想使用个人的空格时,例如Dropbox (Personal),在引用变量时,您需要使用双引号"$DROPBOX_PROFILE"
约书亚·品特

6

怎么样,这样可以避免使用特殊的配置文件作为Dropbox版本的源?

$ ln -s ~/Dropbox/Bash/.bash_profile ~/.bash_profile
$ ln -s ~/Dropbox/Emacs/.emacs ~/.emacs

5

在常规的.bash_profile中,只需调用〜/ Dropbox / Bash / .bash_profile。

#.bash_profile
. ~/Dropbox/Bash/.bash_profile # the '.' command runs a file.

实际上,您可能希望将共享文件称为其他名称,或者至少不要将其设为隐藏文件。


3

我认为这将满足您的要求,只需检查文件是否存在,如果存在,请提供源文件。

$HOME/.bash_profile

[ -f $HOME/Dropbox/Bash/.bash_profile ] && source $HOME/Dropbox/Bash/.bash_profile


0

评论至:https : //superuser.com/a/224204/401026(Andrejs Cainikovs的答案)

我对macOS 10.12.6 Sierra,iTerm2 Build 3.2.0,终端版本2.7.3(388.1.1)所做的更改:
-替换了波浪号
-用双引号替换了单引号

DROPBOX_PROFILE="/Users/xxx/Dropbox/Bash/.bash_profile"
if [ -f $DROPBOX_PROFILE ]; then
    . $DROPBOX_PROFILE
fi

抱歉:我无法发表评论,所以我必须添加另一个答案

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.