Di chuyển .bash_profile sang Dropbox


9

Tôi muốn chuyển .bash_profile của mình sang Dropbox để có sẵn các chức năng Terminal tùy chỉnh trên tất cả các máy Mac của tôi. Điều này có thể và có những tác động có thể?

Ví dụ: tôi có một lệnh để thực hiện một git add và commit trong một lần:

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

Tôi đã không thể tìm thấy bất kỳ thông tin về điều này.


2
Tôi biết bạn đã có câu trả lời, nhưng điều đó khiến tôi suy nghĩ về việc chỉ liên kết mềm với dropbox .bash_profile. Đôi điều suy nghĩ.
JMY1000

@ JMY1000 với giải pháp của tôi, bạn có thể đặt các công cụ bổ sung tùy thuộc vào máy bạn đang bật - chỉ cần đặt các lệnh sau ifcâu lệnh. Nhưng bạn nói đúng đây cũng có thể là một liên kết tượng trưng.
Mateusz Szlosek

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

Câu trả lời:


18

Bạn có thể có tệp bổ sung trong thư mục Dropbox và sau đó trên mọi máy bên trong .bash_profiletệp của bạn, hãy đặt tệp này:

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

5
Vì FILE có thể được sử dụng cho các ứng dụng khác và vì vậy, đêm bạn muốn đặt tên cho biến đó là "DROPBOX-RC"
grepsedawk

4

Tôi nghĩ là ý tưởng tốt hơn để tải lên một kho lưu trữ. Hãy để tôi nói cho bạn biết tôi đã làm như thế nào.

Tôi phiên bản toàn bộ ~/binthư mục. Của tôi .bash_profilelà trên thư mục đó. Đây $HOME/.bash_profilelà một liên kết đến ~/bin/.bash_profile.

Tôi .bash_profiletrông như thế này:

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

Bằng cách đó tôi có thể dễ dàng theo dõi các thay đổi.

Để giữ cập nhật repo, bạn có thể tạo tập lệnh cron hoặc LaunchAgents để kéo các thay đổi trên ~/binthư mục của bạn mỗi ngày một lần:

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

2
Những lợi thế này sẽ có gì so với giải pháp đơn giản mà Mateusz đã trình bày?
swelet

2
@swelet theo quan điểm của tôi, hai ưu điểm chính: bạn có thể dễ dàng hoàn nguyên các thay đổi thành một điểm và bạn có thể theo dõi mọi thay đổi.
jherran

@jherran Hoặc bạn cũng có thể đặt git repo vào thư mục Dropbox. Tôi nghĩ mặc dù Dropbox có một số phiên bản.
pydsigner

2
@pydsigner Tôi đã gặp sự cố với repo Git trong Dropbox. Tôi đoán điều kiện cuộc đua khi Dropbox cố gắng đồng bộ hóa các thay đổi với tệp mà Git sau đó cố gắng mở lại trong khi nó vẫn đang được sử dụng.
millimoose

Giải pháp này hoàn toàn sử dụng repo công khai cho một tệp hệ thống quan trọng, có thể dẫn đến các vấn đề bảo mật. Dropbox và những người khác là riêng tư.
New Alexandria

4

Không nên đưa toàn bộ .bash_profilevào Dropbox, bằng cách điều chỉnh các đường dẫn Dropbox hoặc thông qua một liên kết tượng trưng. Các máy khác nhau có thể yêu cầu nội dung hơi khác nhau của tệp này. Ví dụ: các phiên bản phần mềm khác nhau được cài đặt yêu cầu cấu hình khác nhau, đường dẫn khác nhau, tên khác nhau cho những thứ như phân vùng bên dưới /dev/.

Thay vào đó, hãy làm điều này: đặt tất cả các chức năng và bí danh tùy chỉnh của bạn vào một tệp $HOME/Dropbox/my_functions.shvà sau đó bao gồm dòng

. $HOME/Dropbox/my_functions.sh

trong của bạn .bash_profile.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.