.Bash_profile dosyasını Dropbox'a taşıma


9

Özel Terminal işlevlerimin tüm Mac'lerimde kullanılabilmesi için .bash_profile'ımı Dropbox'a taşımak istiyorum. Bu mümkün mü ve olası sonuçları var mı?

Örneğin bir git git eklemek ve taahhüt yapmak için bir komut var:

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

Bununla ilgili herhangi bir bilgi bulamadım.


2
Zaten bir cevabın olduğunu biliyorum, ama sadece dropbox .bash_profile ile yumuşak bağlantı kurmayı düşünüyorum. Düşünmek için bir şey.
JMY1000

@ JMY1000 benim çözümümle, bulunduğunuz makineye bağlı olarak ek şeyler koyabilirsiniz - sadece ififadeden sonra komutları koyabilirsiniz . Ama haklısın, bu da bir sembolik olabilir.
Mateusz Szlosek

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

Yanıtlar:


18

Dropbox klasöründe ek dosyaya sahip olabilirsiniz ve ardından .bash_profiledosyanızın içindeki her makinede bunu koyabilirsiniz:

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

5
DOSYA diğer uygulamalar ve benzerleri için kullanılabileceğinden, geceyi değişkene "DROPBOX-RC" gibi bir ad vermek istersiniz
grepsedawk

4

Bir depoya yüklemek daha iyi bir fikir. Size nasıl yaptığımı söyleyeyim.

Ben bütün ~/bindizini sürüm . Benim .bash_profilebu dizinde. İçin $HOME/.bash_profilebir bağlantıdır ~/bin/.bash_profile.

Benim .bash_profileşöyle görünüyor:

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

Bu şekilde değişiklikleri kolayca takip edebilirim.

Repo güncellemesini korumak için ~/bindizininizdeki değişiklikleri günde bir kez çeken bir cron veya LaunchAgents betiği oluşturabilirsiniz :

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

2
Mateusz'un sunduğu basit çözüme göre bunun ne gibi avantajları olurdu?
swelet

2
Benim bakış açımdan, iki ana avantaj: değişiklikleri bir noktaya kolayca geri döndürebilir ve her değişikliği takip edebilirsiniz.
jherran

@jherran Veya git repo'yu Dropbox klasörüne de koyabilirsiniz. Bence Dropbox'ın bazı versiyonları var.
pydsigner

2
@pydsigner Dropbox'ta bir Git repo ile sorun yaşadım. Dropbox, Git'in hala kullanılmaya devam ederken yeniden açmaya çalıştığı bir dosyadaki değişiklikleri senkronize etmeye çalıştığında yarış koşullarını tahmin ediyorum.
millimoose

Bu çözüm, kritik bir sistem dosyası için kapalı bir repo kullanarak güvenlik sorunlarına yol açabilir. Dropbox ve diğerleri özeldir.
Yeni İskenderiye

4

.bash_profileDropbox yollarını değiştirerek veya bir sembolik bağlantıyla bütünü Dropbox'a koymak iyi bir fikir değildir . Farklı makineler bu dosyanın biraz farklı içeriğini gerektirebilir. Örnekler: Farklı yapılandırmalar, farklı yollar, bölümler gibi şeyler için farklı adlar gerektiren farklı yazılım sürümleri /dev/.

Bunun yerine bunu yapın: tüm özelleştirilmiş işlevlerinizi ve takma adlarınızı bir dosyaya koyun $HOME/Dropbox/my_functions.shve ardından satırı ekleyin

. $HOME/Dropbox/my_functions.sh

sizin .bash_profile.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.