Làm thế nào để mặc định thư mục khác thay vì thư mục nhà


180

Tôi đang phát triển trên một máy tính windows. Nơi duy nhất tôi cần cho dòng lệnh linux là Git Bash. Vấn đề là: Khi tôi mở nó, tôi đang ở trong thư mục nhà. Tôi phải thay đổi thư mục vào không gian làm việc của mình, như:

cd ../../../d/work_space_for_my_company/project/code_source

Tôi có thể gói nó trong tệp .sh để tôi không phải gõ tay nữa không? Điều này sẽ đơn giản nhưng tôi không có kiến ​​thức về dòng lệnh Linux. Tôi thực sự đánh giá cao Nếu bạn có thể hướng dẫn tôi cách tạo tệp .sh đó.


5
Các câu trả lời dưới đây phù hợp để khắc phục vấn đề này vĩnh viễn, tuy nhiên ngay cả khi không có những câu hỏi này, bạn không nên xử lý vấn đề này mỗi lần. Git Bash bao gồm một lịch sử lệnh vẫn tồn tại giữa các phiên (không giống như bảng điều khiển Windows), vì vậy bất cứ khi nào bạn muốn lặp lại lệnh này, thay vì gõ lại, chỉ cần gõ Ctrl-r và sau đó là một phần của lệnh, ví dụ. ctrl-r../dvà lệnh sẽ xuất hiện, và sau đó gõ enter. Nói chung, đầu tư một vài phút để học cách sử dụng lịch sử lệnh và sau đó bạn sẽ sử dụng nó rất nhiều, khi bạn lặp lại các lệnh git khác nhau.
Stephen Hosking

FYI ở đây là giải pháp thay thế bash WSL C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(hoặc nếu bạn sử dụng cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data) trong đó -ilàm cho các phím mũi tên hoạt động
KCD

Câu trả lời:


101

Chỉ cần viết dòng đó vào một tệp "cd.sh", sau đó thực hiện điều này từ dấu nhắc shell của bạn:

. ./cd.sh

Hoặc bạn có thể tạo bí danh hoặc hàm trong $HOME/.bashrctệp của mình :

foo() { cd /d/work_space_for_my_company/project/code_source ; }

Nếu tên thư mục bao gồm dấu cách hoặc ký tự đại diện hệ vỏ khác, bạn sẽ cần dấu ngoặc kép; Sẽ không hại khi thêm chúng ngay cả khi chúng không cần thiết:

foo() { cd "/d/Work Space/project/code_source" ; }

(Lưu ý rằng tôi đã bỏ qua ../../..; bạn không cần nó.)

EDIT: Nếu bạn thêm một dòng

foo

để .bashrcsau khi định nghĩa hàm, shell của bạn sẽ bắt đầu trong thư mục đó. Hoặc bạn chỉ có thể sử dụng cdlệnh trực tiếp trong .bashrcnếu bạn không cần sử dụng chức năng này sau này.

(Tên foochỉ là một ví dụ; bạn nên chọn một tên có ý nghĩa hơn.)


5
Như @orip chỉ ra, bạn cũng có thể thực hiện cdtrong .bashrc của mình. Nhưng nếu bạn biến nó thành một hàm, bạn có thể sử dụng lại lệnh sau, sau khi bạn đổi sang thư mục khác.
Keith Thompson

2
Để giải thích "../../ ..", lệnh bạn đã chỉ định một đường dẫn liên quan đến thư mục hiện tại của bạn; "../../../d/work_space_for_my_company/project/code_source"tăng ba cấp độ từ thư mục hiện tại của bạn (điều này xảy ra $HOME), sau đó xuống "d", sau đó xuống "làm việc ...". Môi trường shell git bash đã "/d"đề cập đến những gì Windows gọi "D:\". Sử dụng tên đường dẫn tuyệt đối "/d/work_space_for_my_company/project/code_source", đơn giản hơn và không phụ thuộc vào vị trí của bạn $HOME.
Keith Thompson

2
Tôi có thể tìm thấy .bashrctập tin này ở đâu?
ptamzz

2
@ptamzz: Thông thường một .bashrctệp sẽ được tạo trong thư mục chính của bạn khi tài khoản của bạn được thiết lập. Nếu không, bạn có thể tự tạo ra nó.
Keith Thompson

1
Nơi nào bạn tìm thấy "cd.sh"? Và khi bạn nói thư mục nhà. Bạn đang nói về thư mục nhà cho ứng dụng hiện tại hay ??
WowBow

374

Đây là một giải pháp Windows-ish hơn: Nhấp chuột phải vào phím tắt Windows mà bạn sử dụng để khởi chạy git bash và nhấp vào Thuộc tính. Thay đổi giá trị của "Bắt đầu trong" thành đường dẫn không gian làm việc mong muốn của bạn.

Chỉnh sửa: Đồng thời kiểm tra xem giá trị Target không bao gồm tùy chọn --cd-to-home như được ghi chú trong các bình luận bên dưới.


13
vấn đề duy nhất với giải pháp này là bạn không thiết lập đường dẫn mặc định cho thư mục chính, một đường dẫn được truy cập với~
worc

67
Điều này làm việc cho tôi. Ngoài ra, tôi cũng phải loại bỏ tùy chọn --cd-to-home trong lệnh khởi động.
ChinLoong

2
Trong trường hợp bạn có phím tắt được ghim trên thanh tác vụ Windows 7, bạn sẽ cần nhấp chuột phải hai lần vào chương trình theo đề xuất của lifehacker.com/5475752/ Kẻ
manat

11
Đồng ý rằng đây là giải pháp đơn giản nhất, nhưng tuyệt đối nên được sửa đổi để bao gồm loại bỏ "--cd-to-home" trong mục tiêu. Nếu không có thay đổi cuối cùng đó, bạn sẽ luôn mặc định thư mục C: \ Users [name] (trừ khi bạn đã sửa đổi thiết lập của mình).
Zeus56

2
Để làm rõ, trong lối tắt, "Target" phải là %WINDIR%\System32\bash.exevà "Start In" nên C:\Temphoặc bất kỳ con đường nào bạn muốn.
quỷ dữ

45

Thêm dòng vào .bashrctệp trong thư mục chính (tạo tệp nếu nó không tồn tại):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc

5
Tôi biết tôi đến bữa tiệc quá muộn, nhưng cảm ơn bạn đã dừng chức năng vô nghĩa! :)
Felipe Gerard

1
Điều này là hoàn hảo. Đã đi đến của tôi .bashrc.localvà thêm vào cd ~/Desktop/repos/;dưới cùng. Làm việc như người ở! thay đổi dưới cùng .bashrccũng sẽ làm việc.
Michael Dimmitt

Tôi vừa tạo tệp .bashrc tại ~ và lần sau khi tôi mở git Bash, tôi đã phàn nàn rằng tôi không có .bash_profile và một tệp khác vì vậy nó đã tạo chúng cho tôi. Và sau khi mở lại git Bash, nó hoạt động vô nghĩa!
Pini Cheyni

xóa tùy chọn --cd-to-home trong lệnh khởi động (Shortcut Properties)
telebog

38

Tôi sử dụng ConEmu (được khuyến nghị mạnh mẽ trên Windows) nơi tôi có nhiệm vụ bắt đầu Git Bash như

nhập mô tả hình ảnh ở đây

Lưu ý nút "Khởi động thư mục ..." ở phía dưới. Nó thêm một -new_console:d:<path>lệnh khởi động của Git Bash. Làm cho nó chỉ đến bất cứ nơi nào bạn thích


Cảm ơn đã chia sẻ nhiệm vụ tùy chỉnh, tôi không thể làm cho nó hoạt động. Làm thế nào tôi có thể chạy các lệnh windows đơn giản sau đó, chẳng hạn như ping Google.com?
Iman Mohamadi

1
@ImanMohamadi Đối với những thứ như thế tôi thà tạo kịch bản với bạn thêm vào PATH env biến của bạn st u có thể exec cmds như p-gcho ping google vv ...
Juri

23

Điều này có thể giúp bạn.

Mô tả hình ảnh

  1. Nhấp chuột phải vào git bash -> property
  2. Trong tab Shorcut -> Bắt đầu trong trường -> nhập đường dẫn do người dùng xác định của bạn
  3. Đảm bảo trường Target không bao gồm --go-to-homehoặc nó sẽ tiếp tục bắt đầu trong thư mục được chỉ định trong biến HOME của bạn

Đó là nó.


Tôi đã thử nhưng nó không hoạt động khi đường dẫn nằm trong một ổ đĩa khác như d: \ dự án \ test
Ray

Windows 10 không hiển thị tab đó cho git bash, nhưng bạn có thể hack nó bằng 3 dòng mã nhỏ này, lưu nó trong một số tệp **. 1. d: 2. cd data 3.git bashNếu bạn nhấp đúp vào tệp bat thì nó sẽ mở ở vị trí mong muốn
KR

1
Nhìn Targettrường đó, nó không có tham số. Theo mặc định chứa -go-to-hometrong đó phải xóa từ đó đến công trình đó.
Kurapika

1
Nó hoạt động với tôi Mục tiêu: "C: \ Chương trình tập tin \ Git \ git-bash.exe" (QUAN TRỌNG) Bắt đầu bằng: d: / xampp / htdocs /
raftaar1191

1
Nó cũng hoạt động với cùng một mục tiêu so với @ raftaar1191 (Tôi đã xóa tùy chọn "--cd-to-home") và tôi đã định cấu hình dòng "start in" thành "C: \ wamp \ www", rất hữu ích!
nayfun

10

Tôi cũng vừa thay đổi cài đặt "Bắt đầu" của biểu tượng phím tắt thành: %HOMEDRIVE%/xampp/htdocs/


9

Điều này sẽ làm điều đó giả sử bạn muốn điều này xảy ra mỗi khi bạn mở dòng lệnh:

echo cd ../../../d/work_space_for_my_company/project/code_source >> ~/.bashrc

Bây giờ khi bạn mở shell, nó sẽ di chuyển lên ba thư mục từ nhà và thay đổi thành code_source.

Mã này chỉ đơn giản nối thêm dòng "cd ../../../d/work_space_for_my_company/project/code_source" vào một tệp có tên ".bashrc". ">>" tạo một tệp nếu nó không tồn tại và sau đó nối thêm. Tệp .bashrc rất hữu ích để chạy các lệnh tại thời điểm khởi động / đăng nhập (tức là tải các mô-đun, v.v.)


9

(Vui lòng đọc cảnh báo bên dưới)

Cách thực sự đơn giản để làm điều này trong Windows (hoạt động với git bash, có thể là những thứ khác) là tạo một biến môi trường có tên HOME trỏ đến thư mục chính mong muốn của bạn.

  1. Nhấp chuột phải vào máy tính của tôi và chọn thuộc tính
  2. Chọn cài đặt hệ thống nâng cao (vị trí thay đổi theo phiên bản Windows)
  3. Trong thuộc tính hệ thống, chọn tab nâng cao
  4. Trên tab nâng cao, chọn Biến môi trường (nút dưới cùng)
  5. Trong "biến hệ thống" kiểm tra xem bạn đã có biến có tên HOME chưa. Nếu vậy, hãy chỉnh sửa biến đó bằng cách tô sáng tên biến và nhấp vào chỉnh sửa. Đặt tên biến mới theo đường dẫn mong muốn.
  6. Nếu HOME chưa tồn tại, nhấp vào "mới" trong các biến hệ thống và tạo một biến mới có tên HOME có giá trị là đường dẫn mong muốn.

Biến môi trường

LƯU Ý: Điều này có thể thay đổi cách làm việc khác. Ví dụ, đối với tôi, nó thay đổi nơi tệp cấu hình .ssh của tôi sống. Trong trường hợp của tôi, tôi muốn ngôi nhà của mình là U: \, bởi vì đó là nơi chính của tôi mà tôi đặt các cài đặt ứng dụng và công việc dự án (tức là nó thực sự là thư mục "nhà" của tôi).

EDIT ngày 23 tháng 6 năm 2017: Câu trả lời này tiếp tục nhận được sự ủng hộ thường xuyên và tôi muốn cảnh báo mọi người rằng mặc dù điều này có thể "hoạt động", tôi đồng ý với @AnthonyRaymond rằng nó không được khuyến khích. Đây là nhiều hơn một sửa chữa tạm thời hoặc sửa chữa nếu bạn không quan tâm nếu những thứ khác bị hỏng. Thay đổi nhà của bạn sẽ không gây ra thiệt hại tích cực (như xóa ổ cứng của bạn) nhưng nó có thể gây ra những phiền toái ngấm ngầm sau này. Khi bạn bắt đầu gặp vấn đề khó chịu trên đường, có lẽ bạn sẽ không nhớ sự thay đổi này ... vì vậy bạn có thể sẽ gãi đầu sau này!


Tôi không hiểu tại sao các chỉnh sửa được đề xuất bởi @asalle (chủ yếu đề xuất rằng bạn cũng có thể chỉnh sửa các biến hệ thống người dùng) đã bị từ chối Bamsworld fish_ball và greg-449, các chỉnh sửa có vẻ hợp lý.
genorama

Đây là một cách quá nhiều cách phá hủy để trở thành một ý tưởng tốt. Nó có thể ảnh hưởng đến rất nhiều ứng dụng khác và thậm chí cả windows. Không nên dùng
Anthony Raymond

@AnthonyRaymond Như tôi đã lưu ý thay đổi "HOME" có thể có những hậu quả khác, tuy nhiên tôi sẽ không nói rằng nó nhất thiết phải phá hoại. Trên thực tế, nó có thể có lợi nếu bạn muốn HOME của bạn là một vị trí cụ thể hoặc nếu một ứng dụng khác đã đặt HOME thành một vị trí không mong muốn. Trong mọi trường hợp, tôi nghĩ câu trả lời này làm sáng tỏ cách thức thư mục mặc định được đặt.
genorama

@AnthonyRaymond mặc dù tôi đồng ý, rằng trong bối cảnh câu hỏi này đặt nhà cho một dự án cụ thể (ví dụ ../../../d/work_space_for_my_company/project/code_source) là một ý tưởng tồi. Nói chung, nói chung, có những lúc HOME không cần phải có/c/Users/[current user name]/
genorama

Nếu bạn muốn một thư mục đặc biệt để trỏ đến một vị trí khác, hãy tạo liên kết tượng trưng. technet.microsoft.com/en-us/l Library / cc753194 (v = ws.11) .aspx Chúng tôi không có cách nào để biết chương trình nào sử dụng biến HOME, tôi cảm thấy như nó hơi phá hoại.
Anthony Raymond

7

Nhấp chuột phải vào liên kết ứng dụng Git Bash đi đến Thuộc tính và sửa đổi vị trí Bắt đầu ở vị trí thành vị trí bạn muốn bắt đầu.


5

Từ một mục menu bắt đầu được ghim trong Windows 10

  1. Mở vị trí tệp của phím tắt được ghim
  2. Mở thuộc tính phím tắt
    1. Xóa --cd-to-homearg
    2. Start inĐường dẫn cập nhật
  3. Ghim lại để bắt đầu menu thông qua thêm gần đây

mở ảnh chụp màn hình vị trí

mở lối tắt ảnh chụp màn hình thích hợp

cập nhật ảnh chụp màn hình thích hợp

pin qua Screnshot được thêm gần đây


Cảm ơn tất cả các câu trả lời khác cho cách làm điều này! Muốn cung cấp hướng dẫn Win 10 ...


4

Đối với cửa sổ: Thực hiện theo các bước sau-

  1. Chuyển đến windows home> Nhấp chuột phải vào ứng dụng "Git Bash".
  2. Thuộc tính> Phím tắt
  3. Thay đổi hai cài đặt này: (a) Xóa - cd-to-hometừ target (b) Nhập đường dẫn thư mục bạn muốn bắt đầu bằng git trong "Bắt đầu trong".

Điều này làm việc cho tôi :)


3

Nếu bạn muốn có danh sách lựa chọn dự án khi bạn mở GIT bash:

  • chỉnh sửa ppathtiêu đề mã theo đường dẫn dự án git của bạn , đặt mã này vào tệp .bashrc và sao chép nó vào thư mục $ HOME của bạn (trong Win Vista / 7, nó thường là c: \ Users \ $ YOU )

.

#!/bin/bash
ppath="/d/-projects/-github"
cd $ppath
unset PROJECTS
PROJECTS+=(".")
i=0

echo
echo -e "projects:\n-------------"

for f in *
do
    if [ -d "$f" ]
    then
        PROJECTS+=("$f")
        echo -e $((++i)) "- \e[1m$f\e[0m"
    fi
done


if [ ${#PROJECTS[@]} -gt 1 ]
then
    echo -ne "\nchoose project: "
    read proj
    case "$proj" in
        [0-`expr ${#PROJECTS[@]} - 1`]) cd "${PROJECTS[proj]}" ;;
        *) echo " wrong choice" ;;
    esac
else
    echo "there is no projects"
fi
unset PROJECTS
  • bạn có thể muốn đặt tệp này thành tệp thực thi bên trong GIT bash chmod + x .bashrc (nhưng có lẽ là dư thừa, vì tệp này được lưu trữ trên hệ thống tệp ntfs )

2

Phím tắt Git Bash của tôi trên Windows đã phàn nàn khi tôi đặt cd vào thư mục công việc của mình vào ~ / .bashrc

WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile.

This looks like an incorrect setup.
A ~/.bash_profile that loads ~/.bashrc will be created for you.

Vì vậy, git đã tạo .bash_profile này:

$ cat ~/.bash_profile
# generated by Git for Windows
test -f ~/.profile && . ~/.profile
test -f ~/.bashrc && . ~/.bashrc

Mà làm công việc.

Ngoài ra, bạn có thể xóa lại .bashrc và đặt lệnh cd vào .bash_profile:

$ rm ~/.bashrc
$ echo "cd Source/Repos" >~/.bash_profile

$ cat ~/.bash_profile
cd Source/Repos

Sau khi hoàn thành, bạn có thể đóng Cửa sổ và mở lại bằng phím tắt trên màn hình và lời nhắc sẽ cho bạn biết rằng vị trí của bạn hiện là nơi bạn muốn - có vẻ như đây là trường hợp của tôi:

Administrator@raptor1 MINGW64 ~/Source/Repos
$

2

Nếu bạn gõ lệnh này: echo cd d:/some/path >> ~/.bashrc

Nối dòng cd d:/some/pathvào .bashrc. Các >>tạo ra một tập tin nếu nó không tồn tại và sau đó gắn thêm.


1

nó phải là cd d:/work_space_for_....

không có :nó không làm việc cho tôi


1

Một giải pháp khác cho người dùng Windows sẽ là sao chép tệp Git Bash.lnk vào thư mục bạn cần bắt đầu và khởi chạy nó từ đó.

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.