Cara default ke direktori lain, bukan direktori home

180

Saya mengembangkan pada mesin windows. Satu-satunya tempat yang saya butuhkan untuk baris perintah linux adalah Git Bash. Masalahnya adalah: Ketika saya membukanya, saya berada di direktori home. Saya harus mengubah direktori ke ruang kerja saya, seperti:

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

Bisakah saya membungkus ini dalam file .sh jadi saya tidak perlu mengetikkannya lagi? Ini seharusnya sederhana tetapi saya tidak memiliki pengetahuan tentang baris perintah Linux. Saya sangat menghargai Jika Anda bisa memandu saya cara membuat file .sh itu.

Xi Zhang
sumber
5
Jawaban di bawah ini tepat untuk memperbaikinya secara permanen, namun bahkan tanpa ini, Anda tidak harus melakukan handtyping ini setiap waktu. Git Bash menyertakan riwayat perintah yang tetap ada di antara sesi (tidak seperti konsol Windows), jadi kapan pun Anda ingin mengulangi perintah ini, alih-alih mengetiknya lagi, cukup ketik Ctrl-r dan kemudian bagian dari perintah, mis. ctrl-r../ddan perintah akan muncul, dan kemudian ketik enter. Secara umum, investasikan beberapa menit untuk mempelajari cara menggunakan histori perintah dan kemudian Anda akan sering menggunakannya, saat Anda mengulangi berbagai perintah git.
Stephen Hosking
FYI inilah alternatif bash WSL C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'(atau jika Anda menggunakan cmder cmd /c "C:\Windows\System32\bash.exe -i -c 'cd /mnt/c/Data; exec "${SHELL:-bash}"'" -new_console:t:Data) di mana -itombol panah berfungsi
KCD

Jawaban:

101

Cukup tulis baris itu ke file "cd.sh", lalu lakukan ini dari prompt shell Anda:

. ./cd.sh

Atau Anda dapat membuat alias atau fungsi di $HOME/.bashrcfile Anda :

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

Jika nama direktori menyertakan spasi atau karakter meta shell lainnya, Anda akan memerlukan tanda kutip; tidak ada ruginya menambahkannya bahkan jika itu tidak perlu:

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

(Perhatikan bahwa saya telah menghapus ../../..; Anda tidak membutuhkannya.)

EDIT: Jika Anda menambahkan garis

foo

ke Anda .bashrcsetelah definisi fungsi, shell Anda akan mulai di direktori itu. Atau Anda bisa langsung menggunakan cdperintah di.bashrc jika Anda tidak perlu menggunakan fungsi nanti.

(Nama fooitu hanya sebuah contoh; Anda harus memilih nama yang lebih bermakna.)

Keith Thompson
sumber
5
Seperti yang ditunjukkan @orip, Anda mungkin cukup melakukannya cddi .bashrc Anda. Tetapi jika Anda membuatnya berfungsi, Anda dapat menggunakan perintah lagi nanti, setelah Anda berubah ke direktori lain.
Keith Thompson
2
Untuk menjelaskan "../../ ..", perintah yang Anda berikan menentukan path relatif ke direktori Anda saat ini; "../../../d/work_space_for_my_company/project/code_source"naik tiga tingkat dari direktori Anda saat ini (yang kebetulan $HOME), lalu turun ke "d", lalu turun ke "bekerja ...". Lingkungan git bash shell "/d"merujuk pada apa yang disebut Windows "D:\". Menggunakan nama jalur absolut "/d/work_space_for_my_company/project/code_source",, lebih sederhana dan tidak bergantung pada di mana Anda $HOMEberada.
Keith Thompson
2
Di mana saya dapat menemukan .bashrcfile ini ?
ptamzz
2
@ptamzz: Biasanya .bashrcfile akan dibuat di direktori home Anda ketika akun Anda sudah diatur. Jika tidak, Anda bisa membuatnya sendiri.
Keith Thompson
1
Di mana Anda menemukan "cd.sh"? Dan ketika Anda mengatakan direktori home. Apakah Anda berbicara tentang dir home untuk aplikasi saat ini atau ??
WowBow
374

Inilah solusi Windows-ish yang lebih banyak: Klik kanan pada pintasan Windows yang Anda gunakan untuk meluncurkan git bash, dan klik Properties. Ubah nilai "Mulai Masuk" ke jalur ruang kerja yang Anda inginkan.

Sunting: Periksa juga bahwa nilai Target tidak termasuk opsi --cd-ke-rumah seperti yang tercantum dalam komentar di bawah.

David Siegal
sumber
13
satu-satunya masalah dengan solusi ini adalah Anda tidak menetapkan path default untuk direktori home, yang diakses dengan~
worc
67
Ini berhasil untuk saya. Selain itu, saya juga harus menghapus opsi --cd-ke-rumah dalam perintah startup.
ChinLoong
2
Jika Anda memiliki pintasan yang disematkan pada taskbar Windows 7, Anda harus mengklik kanan dua kali pada program seperti yang disarankan oleh lifehacker.com/5475752/…
manat
11
Setuju bahwa ini adalah solusi yang paling mudah, tetapi benar-benar harus diubah untuk menyertakan penghapusan "--cd-ke-rumah" di target. Tanpa perubahan terakhir itu, Anda akan selalu default ke folder C: \ Users [name] (kecuali Anda telah memodifikasi pengaturan Anda)
Zeus56
2
Untuk memperjelas, dalam pintasan "Target" harus %WINDIR%\System32\bash.exedan "Mulai Masuk" harus C:\Tempatau jalan apa pun yang Anda inginkan.
demoncodemonkey
45

Tambahkan baris ke .bashrcfile di direktori home (buat file jika tidak ada):

cd ~
touch .bashrc
echo "cd ~/Desktop/repos/" >> .bashrc
orip
sumber
5
Saya tahu saya sangat terlambat ke pesta, tetapi terima kasih telah menghentikan fungsi omong kosong! :)
Felipe Gerard
1
Ini sempurna. Pergi ke saya .bashrc.localdan menambahkan cd ~/Desktop/repos/;ke bawah. Bekerja seperti pesona! mengubah bagian bawah .bashrcjuga akan berhasil.
Michael Dimmitt
Saya baru saja membuat file .bashrc di ~ dan waktu berikutnya saya membuka git Bash mengeluh bahwa saya tidak memiliki .bash_profile dan file lain sehingga membuatnya untuk saya. Dan setelah membuka kembali git Bash itu berhasil tanpa bunga!
Pini Cheyni
hapus opsi --cd-to-home dalam perintah startup (Shortcut Properties)
telebog
38

Saya menggunakan ConEmu (sangat disarankan di Windows) di mana saya memiliki tugas untuk memulai Git Bash

masukkan deskripsi gambar di sini

Perhatikan tombol "Startup dir ..." di bagian bawah. Itu menambah -new_console:d:<path>perintah startup dari Git Bash. Tunjukkan ke mana pun Anda suka

Juri
sumber
Terima kasih telah berbagi tugas khusus, saya tidak bisa menjalankannya. Bagaimana saya bisa menjalankan perintah windows sederhana setelah itu, seperti ping Google.com misalnya?
Iman Mohamadi
1
@ImanMohamadi Untuk hal-hal seperti itu saya lebih suka membuat skrip dengan Anda menambahkan ke variabel PATH Anda dan Anda dapat menjalankan cmds seperti p-guntuk melakukan ping google dll ...
Juri
23

Ini dapat membantu Anda.

uraian gambar; kesan

  1. Klik kanan pada git bash -> properties
  2. Di tab Shorcut -> Mulai di bidang -> masukkan jalur yang ditentukan pengguna Anda
  3. Pastikan bidang Target tidak termasuk --go-to-homeatau akan terus dimulai di direktori yang ditentukan dalam variabel HOME Anda

Itu dia.

Krish
sumber
Saya mencobanya tetapi tidak berhasil ketika jalan di drive lain seperti tes d: \ proyek \
Ray
Windows 10 tidak menunjukkan tab itu untuk git bash, Tetapi Anda dapat meretasnya menggunakan 3 baris kode kecil ini, simpan di beberapa file bat **. 1. d: 2. cd data 3.git bashJika Anda mengklik dua kali file bat maka itu akan terbuka di lokasi yang diinginkan
Krish
1
Lihatlah Targetbidang itu, tidak memiliki parameter. Secara default berisi -go-to-homeyang harus dihapus dari sana agar berfungsi.
Kurapika
1
Ini berfungsi untuk saya Target: "C: \ Program Files \ Git \ git-bash.exe" (PENTING) Mulai: d: / xampp / htdocs /
raftaar1191
1
Ini bekerja untuk saya juga dengan target yang sama dari @ raftaar1191 (saya menghapus opsi "--cd-to-home"), dan saya mengkonfigurasi baris "mulai masuk" ke "C: \ wamp \ www", sangat berguna!
nayfun
10

Saya juga baru saja mengubah pengaturan "Mulai masuk" ikon pintasan ke: %HOMEDRIVE%/xampp/htdocs/

Francis
sumber
9

Ini akan melakukannya dengan asumsi Anda ingin ini terjadi setiap kali Anda membuka baris perintah:

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

Sekarang ketika Anda membuka shell itu akan naik tiga direktori dari rumah dan berubah menjadi code_source.

Kode ini hanya menambahkan baris "cd ../../../d/work_space_for_my_company/project/code_source" ke file bernama ".bashrc". ">>" membuat file jika tidak ada dan kemudian menambahkan. File .bashrc berguna untuk menjalankan perintah pada saat start-up / login (mis. Memuat modul, dll.)

Usagi
sumber
9

(Harap baca peringatan di bawah)

Cara yang sangat sederhana untuk melakukan ini di Windows (bekerja dengan git bash, mungkin yang lain) adalah dengan membuat variabel lingkungan yang disebut HOME yang menunjuk ke direktori home yang Anda inginkan.

  1. Klik kanan pada komputer saya, dan pilih properti
  2. Pilih pengaturan sistem lanjutan (lokasi bervariasi menurut versi Windows)
  3. Di dalam properti sistem, pilih tab tingkat lanjut
  4. Pada tab lanjutan, pilih Variabel Lingkungan (tombol bawah)
  5. Di bawah "variabel sistem" periksa untuk melihat apakah Anda sudah memiliki variabel yang disebut HOME. Jika demikian, edit variabel itu dengan menyorot nama variabel dan klik edit. Jadikan nama variabel baru sebagai jalur yang diinginkan.
  6. Jika HOME belum ada, klik "baru" di bawah variabel sistem dan buat variabel baru bernama HOME yang nilainya jalur yang diinginkan.

Variabel lingkungan

CATATAN: Ini dapat mengubah cara kerja hal-hal lain. Sebagai contoh, bagi saya itu mengubah tempat file konfigurasi .ssh saya tinggal. Dalam kasus saya, saya ingin rumah saya menjadi U: \, karena itu adalah tempat utama saya untuk meletakkan pekerjaan proyek dan pengaturan aplikasi (yaitu itu sebenarnya adalah direktori "rumah" saya).

EDIT 23 Juni 2017: Jawaban ini terus mendapatkan upvotes sesekali, dan saya ingin memperingatkan orang bahwa meskipun ini mungkin "bekerja", saya setuju dengan @AnthonyRaymond bahwa itu tidak dianjurkan. Ini lebih merupakan perbaikan sementara atau perbaikan jika Anda tidak peduli jika hal-hal lain rusak. Mengubah rumah Anda tidak akan menyebabkan kerusakan aktif (seperti menghapus hard drive Anda) tetapi itu kemungkinan akan menyebabkan gangguan berbahaya nantinya. Ketika Anda mulai memiliki masalah yang mengganggu di jalan, Anda mungkin tidak akan ingat perubahan ini ... jadi Anda mungkin akan menggaruk-garuk kepala nanti!

geneorama
sumber
Saya tidak mengerti mengapa pengeditan yang disarankan oleh @asalle (terutama menyarankan bahwa Anda juga dapat mengedit variabel sistem pengguna) ditolak Bamsworld fish_ball dan greg-449, pengeditan tampak masuk akal.
geneorama
Ini adalah cara yang terlalu merusak untuk menjadi ide yang bagus. Ini dapat mempengaruhi banyak aplikasi lain dan bahkan windows. Ini tidak direkomendasikan
Anthony Raymond
@AnthonyRaymond Seperti yang saya catat mengubah "HOME" dapat memiliki konsekuensi lain, namun saya tidak akan mengatakan itu selalu merusak. Bahkan, itu bisa bermanfaat jika Anda ingin HOME Anda menjadi lokasi tertentu atau jika aplikasi lain telah menetapkan HOME ke lokasi yang tidak diinginkan. Bagaimanapun, saya pikir jawaban ini memberi penjelasan tentang bagaimana direktori default diatur.
geneorama
@AnthonyRaymond walaupun saya setuju, bahwa dalam konteks pertanyaan ini, pengaturan proyek tertentu (misalnya ../../../d/work_space_for_my_company/project/code_source) adalah ide yang buruk. Namun secara umum, ada saatnya di mana HOME tidak perlu/c/Users/[current user name]/
geneorama
Jika Anda ingin folder khusus mengarah ke lokasi lain, buat symlink. technet.microsoft.com/en-us/library/cc753194(v=ws.11).aspx Kami tidak memiliki cara untuk mengetahui program mana yang menggunakan variabel HOME, karena saya merasa agak merusak.
Anthony Raymond
7

Klik kanan tautan aplikasi Git Bash, buka Properties dan ubah lokasi Start in menjadi lokasi yang Anda inginkan.

Michael Stramel
sumber
5

Dari Item Menu Mulai yang Disematkan di Windows 10

  1. Buka lokasi file pintasan yang disematkan
  2. Buka properti pintasan
    1. Hapus --cd-to-homearg
    2. Perbarui Start injalur
  3. Sematkan kembali untuk memulai menu melalui yang baru ditambahkan

buka tangkapan layar lokasi file

buka screenshot shortcut properites

perbarui tangkapan layar properites shortcut

sematkan melalui screnshot yang baru ditambahkan


Terima kasih atas semua jawaban lain untuk cara melakukan ini! Ingin memberikan petunjuk Win 10 ...

spottedmahn
sumber
4

Untuk windows: Ikuti langkah-langkah ini-

  1. Buka home windows> Klik kanan pada aplikasi "Git Bash".
  2. Properti> Pintasan
  3. Ubah dua pengaturan ini: (a) Hapus - cd-to-homedari target (b) Ketikkan jalur folder yang ingin Anda mulai dengan git di "Mulai".

Ini bekerja untuk saya :)

Md Nehaluddin Haider
sumber
3

Jika Anda ingin memiliki daftar pilihan proyek saat Anda membuka GIT bash:

  • edit ppathdi header kode ke jalur proyek git Anda , masukkan kode ini ke file .bashrc dan salin ke dir $ HOME Anda (di Win Vista / 7 biasanya 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
  • Anda mungkin ingin mengatur file ini sebagai executable di dalam GIT bash chmod + x .bashrc (tetapi mungkin berlebihan, karena file ini disimpan pada sistem file ntfs )
s1w_
sumber
2

Jalan pintas Git Bash saya di Windows mengeluh ketika saya memasukkan cd ke direktori pekerjaan saya ke ~ / .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.

Jadi git membuat .bash_profile ini:

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

Yang melakukan pekerjaan.

Atau, Anda bisa menghapus .bashrc lagi dan memasukkan perintah cd ke .bash_profile:

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

$ cat ~/.bash_profile
cd Source/Repos

Setelah ini selesai, Anda dapat menutup Window dan membukanya kembali menggunakan pintasan desktop dan prompt akan memberi tahu Anda bahwa lokasi Anda sekarang berada di tempat yang Anda inginkan - sepertinya inilah kasus saya:

Administrator@raptor1 MINGW64 ~/Source/Repos
$
dr. RAI
sumber
2

Jika Anda mengetik perintah ini: echo cd d:/some/path >> ~/.bashrc

Tambahkan baris cd d:/some/pathke .bashrc. The >>menciptakan file jika itu tidak ada dan kemudian menambahkan.

mtpultz
sumber
1

itu pasti cd d:/work_space_for_....

tanpa :itu tidak akan bekerja untuk saya

larsbo
sumber
1

Solusi lain untuk pengguna Windows adalah menyalin file Git Bash.lnk ke direktori yang Anda butuhkan untuk memulai dan meluncurkannya dari sana.

lewati405
sumber