将.bash_profile移至Dropbox


9

我想将.bash_profile移至Dropbox,以使我的自定义终端功能在所有Mac上都可用。这可能吗,并且有可能产生影响吗?

例如,我有一个命令可以一次性完成git add和commit:

function gax() {
    git add .
    git commit -m "$1"
}

我一直找不到有关此的任何信息。


2
我知道您已经有了答案,但是这让我开始考虑仅软链接到保管箱.bash_profile。需要考虑的事情。
JMY1000

@ JMY1000与我的解决方案一起使用,您可以根据所使用的计算机放置其他内容-只需在if语句后放置命令即可。但是,您是对的,这也可能是符号链接。
Mateusz Szlosek

2
ln -s ~/path/to/dropbox/bash_profile_file ~/.bash_profile
6

Answers:


18

您可以在Dropbox文件夹中包含其他文件,然后在.bash_profile文件内的每台计算机上放置以下文件:

FILE="/path/to/DropboxFolder/shared_bash_profile_file"
if [ -f $FILE ];
then
    source $FILE
fi

5
由于FILE可以用于其他应用程序等,因此您晚上想将变量命名为“ DROPBOX-RC”
grepsedawk

4

我认为将其上传到存储库是一个更好的主意。让我告诉你我是怎么做到的。

我对整个~/bin目录进行版本控制。我.bash_profile在那个目录上。的$HOME/.bash_profile是一个链接~/bin/.bash_profile

我的.bash_profile样子是这样的:

if [[ $OSTYPE == darwin* ]]; then
    . ~/bin/includes/exports-osx.sh
    . ~/bin/includes/bash-stuff-osx.sh
    . ~/bin/includes/aliases-osx.sh
    . ~/bin/includes/functions-osx.sh
elif [[ $OSTYPE == linux* ]]; then
    . ~/bin/includes/exports-linux.sh
    . ~/bin/includes/terminal-linux.sh
    . ~/bin/includes/aliases-linux.sh
    . ~/bin/includes/ssh-keys-linux.sh
    . ~/bin/includes/bash-stuff-linux.sh
fi

. ~/bin/includes/bash-stuff.sh
. ~/bin/includes/aliases.sh
. ~/bin/includes/powerline.sh
. ~/bin/includes/functions.sh
. ~/bin/includes/work-stuff.sh

这样我就可以轻松地跟踪更改。

要保持回购更新,您可以创建cron或LaunchAgents脚本,~/bin每天将目录中的更改提取一次:

cd ~/bin && git pull origin $(git name-rev --name-only HEAD)

2
与Mateusz提出的简单解决方案相比,这具有什么优势?
swelet16年

2
从我的角度来看,@ swelet有两个主要优点:您可以轻松地将更改还原到某个点,并且可以跟踪每个更改。
jherran

@jherran或者您也可以将git repo放在Dropbox文件夹中。我确实认为,尽管Dropbox本身具有一些版本控制。
pydsigner

2
@pydsigner我在Dropbox的Git仓库遇到了麻烦。我正在猜测竞争状况,因为Dropbox尝试将更改同步到文件,然后Git仍在使用它时尝试重新打开它。
millimoose

此解决方案隐式使用关键系统文件的公共存储库,这可能导致安全问题。Dropbox和其他人是私人的。
新亚历山大(Alexanderia)

4

.bash_profile通过调整Dropbox路径或通过符号链接将整个控件放入Dropbox 并不是一个好主意。不同的机器可能需要此文件的内容稍有不同。示例:安装的不同软件版本需要不同的配置,不同的路径,诸如下的分区之类的不同名称/dev/

而是这样做:将所有自定义的函数和别名放在文件中$HOME/Dropbox/my_functions.sh,然后包含该行

. $HOME/Dropbox/my_functions.sh

在你的.bash_profile

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.