Синхронизация профиля bash между компьютерами

12

У меня есть тонны вещей в моем .bash_profile. Проблема в том, что я использую ~ 3 компьютера очень часто, и мне надоело копировать и вставлять свои префы везде. Два из них работают под управлением Ubuntu 10.10, а один - OSX. Мне было интересно, если есть способ использовать Dropbox, чтобы поделиться одним файлом prefs. Мол, когда начинается bash, скажи это проверить ~/Dropbox/Bash/.bash_profile?

Хотя, могу ли я также попросить Emacs посмотреть ~/Dropbox/Emacs/.emacsкак-нибудь?

мистифицировать
источник
2
Умный вопрос!
Мсанфорд
Я не могу комментировать (отличный) выбранный ответ. Я не знаю, является ли это чем-то конкретным для osx / mac, но мне нужно было внести пару изменений, чтобы он работал DROPBOX_PROFILE = '~ / Dropbox / Bash / .bash_profile' if [-f $ DROPBOX_PROFILE]; затем . $ DROPBOX_PROFILE fi должно быть DROPBOX_PROFILE = "$ HOME / Dropbox / Bash / .bash_profile" if [-f $ DROPBOX_PROFILE]; затем . $ DROPBOX_PROFILE fi Надеюсь, это поможет.
Джейсон
Просто чтобы прояснить ситуацию: @ трюки Джейсона заключаются в замене одинарных кавычек на двойные и замене '~' на '$ HOME' в определении DROPBOX_PROFILE
sprugman

Ответы:

17

~ / .Bash_profile

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

~ / .Emacs

(load "~/Dropbox/Emacs/.emacs")
Андрейс Кайников
источник
3
Я лично чувствую, что sourceэто более читабельно (и googlable), чем оператор точки, но это ваш ответ, и поэтому я не буду его редактировать. Кроме этого, +1 за хороший ответ.
Hello71
@ 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
garyjohn
источник
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 (Ответ Андрея Каиникова)

мои изменения для macOS 10.12.6 Sierra, iTerm2 Build 3.2.0, Terminal Version 2.7.3 (388.1.1):
- заменена тильда
- заменить одинарные кавычки на двойные кавычки

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

извините: я не могу писать комментарии, поэтому я должен добавить еще один ответ

Tinu1976CH
источник