.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.