Bagaimana cara saya menyingkirkan awalan Cygwin / cygdrive di semua jalur?


36

Saya beralih ke Cygwin dari bash shell yang dikirimkan bersama Git untuk Windows, dan menghadapi masalah aneh. Seseorang berpikir itu akan menjadi ide yang bagus untuk ditambahkan /cygdrive/ke semua jalan, sementara saya pikir itu ide yang sangat jelek. Saya sudah dapat menentukan bahwa saya dapat memperbaiki sebagian ini dengan menambahkan

mount --change-cygdrive-prefix /
export HOME=/c/Users/BZISAD0

di .bashrc saya, tetapi jika saya melihat variabel PATH, semuanya masih memiliki / cygdrive / di dalamnya. Saya kira saya bisa menulis naskah untuk memperbaiki PATH tetapi itu bahkan lebih kludgey daripada apa yang sudah saya lakukan. Pasti ada cara yang lebih baik, dan saya cukup yakin ada sejak bash shell Git menggunakan (AFAIK) versi Cygwin yang lebih lama, dan entah bagaimana itu dikonfigurasikan untuk tidak bertukar di /cygdrivemana-mana. Jadi, bagaimana saya bisa memutar kenop "Sedot" ke nol?

Komik Gary Larson

Jawaban:


39

Melihat-lihat di / etc muncul tautan yang tidak Googling. Ternyata Anda dapat mengontrol ini di file /etc/fstab. Cukup tambahkan baris yang mengatakan

none / cygdrive binary 0 0

dan masalahnya harus diperbaiki. Tidak ada lagi perbaikan kludgey di .bashrc, dan tidak ada $ PATH yang kacau.


2
Saya menggunakan metode ini, dan sekarang ketika saya mencoba melakukannya ls /, drive windows tidak muncul. Bahkan saat menggunakan ls -l /. Apakah ini yang diharapkan? Bisakah itu diperbaiki? Inilah yang saya miliki di fstab:none / cygdrive binary,posix=0,user,acl 0 0
Tibi

Saya tidak tahu ada cara untuk mendapatkan drive windows /. Apakah Anda pernah memilikinya sebelumnya? (Atau /cygdrive/?) Saya selalu hidup dengan fakta bahwa saya harus tahu drive Windows mana yang tersedia, dan saya jarang menggunakannya.
iconoclast

1
Ya, ls /cygdriveharus mencantumkan drive Windows. Output untuk saya, misalnya, adalah c/ e/ f/. Perhatikan bagaimana drive diperlakukan seperti folder.
Kat

1
Ini hanya setengah bekerja. Dua mount (nyata /dan cygdrive) semacam overlay. Yaitu: Anda dapat menggunakan drive /c, dll. - tetapi drive tidak pernah terdaftar sebagai bagian dari /. Saya pikir yang sebenarnya /menyembunyikan konten cygdrivesaat mendaftar. Saya bertanya-tanya apakah ini perilaku yang secara teknis tidak terdefinisi dan mungkin dapat merusak sesuatu. Ngomong-ngomong, karena saya lebih suka melihat apa pun yang sedang saya kerjakan, saya memilih /mnt.
underscore_d

1
@ Tibi saya menemukan bahwa jika Anda cd ke / dan kemudian melakukan mkdir c (atau apa pun nama drive Anda), itu akan membuat titik mount drive itu terlihat oleh ls, alih-alih menimpa dengan direktori kosong. Siapa sangka?
barksdml

10

Metode satu

mount -c /
mount -m > /etc/fstab

Metode dua

echo - / cygdrive acl > /etc/fstab

Contoh


baik sebelum dan sesudah melakukan ini (metode 1), /merujuk ke direktori root cygwin64, dan cd /ctidak berfungsi. Untuk membuat cd /cpekerjaan saya harus lakukan mount c: /c.
MM

/cseharusnya tidak pernah berhasil, solusi saya tidak pernah menyarankan itu
Steven Penny

2
Saya menafsirkan "bagaimana cara menyingkirkan / cygdrive di jalur" berarti "bagaimana mengizinkan / c untuk bekerja, bukan / cygdrive / c" (dan juga untuk huruf lainnya). PATH saya sekarang memang menunjukkan / c / bla bukan / cygdrive / c / bla
MM

1
Pada 2.9.0 (0.318 / 5/3) 2017-09-12 10:18 x86_64 Cygwin, melakukan metode yang memungkinkan pengguna untuk cd /catau cd c:. Menggunakan cd /masih pergi ke dir cygwin64.
Marcel Wilson

1

Ya, mount harus bekerja.

mount -c /

Jika Anda masih memiliki entri PATHyang merujuk /cygdrive, maka Anda mungkin hanya perlu mem-boot ulang.

Juga, periksa apakah ada PATHpengaturan /etc/profileyang merujuk /cygdrive.


Maksud Anda me-restart Cygwin, atau benar-benar me-reboot seluruh mesin?
iconoclast

Saya pikir Anda perlu menghentikan semua proses berbasis Cygwin. Cara termudah untuk melakukan ini adalah dengan me-reboot mesin.
Mikel

Saya biasanya memberikan preferensi pada jawaban orang lain ketika saya menemukan jawaban atas pertanyaan saya sendiri, tetapi karena pertanyaan Anda memerlukan reboot (atau simulasi daripadanya) dan karena milik saya adalah yang ditemukan dalam dokumentasi cygwin, saya akan menjawab pertanyaan saya.
iconoclast

Jika Anda berhasil tanpa reboot, berarti!
Mikel

Tetapi jika saya reboot mesin, perubahan ini hilang. Kembali ke apa yang disimpan di fstab.
rustyx
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.