ย้าย. bash_profile ไปยัง Dropbox


9

ฉันต้องการย้าย. bash_profile ของฉันไปยัง Dropbox เพื่อให้ฟังก์ชั่นเทอร์มินัลที่กำหนดเองของฉันพร้อมใช้งานบน Mac ของฉันทั้งหมด เป็นไปได้และมีความหมายที่เป็นไปได้?

ตัวอย่างเช่นฉันมีคำสั่งสำหรับการทำคอมไพล์เพิ่มและกระทำในครั้งเดียว:

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

ฉันไม่พบข้อมูลใด ๆ เกี่ยวกับสิ่งนี้


2
ฉันรู้ว่าคุณได้รับคำตอบแล้ว แต่ฉันคิดว่าจะต้อง softlinking ไปยังดรอปบ็อกซ์. bash_profile สิ่งที่ต้องคิด
JMY1000

@ JMY1000 กับการแก้ปัญหาของฉันคุณสามารถนำสิ่งที่เพิ่มเติมขึ้นอยู่กับเครื่องที่คุณอยู่ที่ - เพียงใส่คำสั่งหลังจากที่ifคำสั่ง แต่คุณพูดถูกนี่อาจเป็น symlink ก็ได้
Mateusz Szlosek

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

คำตอบ:


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

ด้วยวิธีนี้ฉันสามารถติดตามการเปลี่ยนแปลงได้อย่างง่ายดาย

เพื่อรักษา repo update คุณสามารถสร้างสคริปต์ cron หรือ LaunchAgents ที่ดึงการเปลี่ยนแปลงใน~/binไดเรกทอรีของคุณวันละครั้ง:

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

2
สิ่งนี้จะได้ประโยชน์อะไรมากกว่าโซลูชันง่ายๆที่ Mateusz นำเสนอ
swelet

2
@swelet จากมุมมองของฉันข้อดีหลักสองประการ: คุณสามารถย้อนกลับการเปลี่ยนแปลงไปยังจุดหนึ่งได้อย่างง่ายดายและคุณสามารถติดตามการเปลี่ยนแปลงทุกอย่างได้
jherran

@ jherran หรือคุณสามารถใส่ repit git ในโฟลเดอร์ Dropbox ได้เช่นกัน ฉันคิดว่า Dropbox นั้นมีบางเวอร์ชันอยู่
pydsigner

2
@pydsigner ฉันมีปัญหากับ repo Git ใน Dropbox ฉันคาดเดาสภาพการแข่งขันเนื่องจาก Dropbox พยายามซิงค์การเปลี่ยนแปลงกับไฟล์ที่ Git พยายามเปิดอีกครั้งในขณะที่ยังคงมีการใช้งานอยู่
millimoose

วิธีการแก้ปัญหานี้ใช้ repo สาธารณะสำหรับไฟล์ระบบที่สำคัญซึ่งอาจนำไปสู่ปัญหาด้านความปลอดภัย Dropbox และอื่น ๆ เป็นแบบส่วนตัว
ใหม่ Alexandria

4

ไม่ใช่ความคิดที่ดีที่จะใส่ทั้งหมด.bash_profileใน Dropbox ไม่ว่าจะโดยการปรับแต่งเส้นทาง Dropbox หรือผ่าน symlink เครื่องที่แตกต่างกันอาจต้องการเนื้อหาที่แตกต่างกันเล็กน้อยในไฟล์นี้ ตัวอย่าง: รุ่นที่แตกต่างกันการติดตั้งที่กำหนดให้การกำหนดค่าที่แตกต่างกัน, /dev/เส้นทางที่แตกต่างกันชื่อแตกต่างกันสำหรับสิ่งต่างๆเช่นพาร์ทิชันภายใต้

ทำสิ่งนี้แทน: ใส่ฟังก์ชั่นและนามแฝงที่กำหนดเองทั้งหมดของคุณลงในไฟล์$HOME/Dropbox/my_functions.shจากนั้นใส่บรรทัด

. $HOME/Dropbox/my_functions.sh

.bash_profileในของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.