すべてのパスでCygwinの/ cygdriveプレフィックスを削除するにはどうすればよいですか?


36

Git for Windowsに同梱されているbashシェルからCygwinに切り替えていますが、奇妙な問題が発生しています。誰か/cygdrive/がすべてのパスに追加するのは良い考えだと思いましたが、それは恐ろしくideaい考えだと思います。私はこれを追加することでこれを部​​分的に修正できると判断できました

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

.bashrcにありますが、PATH変数を見ると、すべてに/ cygdrive /が含まれています。私はPATHを修正するスクリプトを書くことができると思いますが、それは私がすでにやっていることよりももっと厄介です。そこより良い方法があるはず、と私はそこのCygwinの古いバージョンがGitリポジトリのbashシェルが使用する(私の知る限り)以来で、それが何らかの形に構成されていますかなり確信していない先頭に追加/cygdriveどこでも。それでは、「Suck」ノブをゼロにするにはどうすればよいですか?

ゲイリーラーソンコミック

回答:


39

/ etcをぐるぐる回すと、Googlingがしなかったリンクが見つかりまし。ファイルでこれを制御できることがわかります/etc/fstab。という行を追加するだけです

none / cygdrive binary 0 0

問題を修正する必要があります。.bashrcの面倒な修正や、混乱した$ PATHはありません。


2
この方法を使用しましたがls /、実行しようとすると、Windowsドライブが表示されません。を使用していなくてもls -l /。これは予想されますか?修正できますか?これは私がfstabに持っているものである:none / cygdrive binary,posix=0,user,acl 0 0
TIBI

でWindowsドライブを取得する方法があることを知りませんでした/。前に持っていましたか?(または/cygdrive/?)私はいつも、どのWindowsドライブが利用可能であるかを知る必要があるという事実にただ住んでおり、とにかくそれらをほとんど使用しません。
iconoclast 14

1
はい、ls /cygdriveWindowsドライブをリストする必要があります。たとえば、私にとっての出力はc/ e/ f/です。ドライブがフォルダのように扱われる方法に注意してください。
キャット

1
これは半分しか機能しません。2つのマウント(実際のマウント/cygdrive)は、一種のオーバーレイです。つまり/cなどを使用してドライブにアクセスできますが、の一部としてリストされることはありません/。本当はリストの/内容を隠していると思いますcygdrive。これが技術的に未定義の動作であり、おそらく何かを壊すかもしれないのではないかと思っています。とにかく、私は一緒に作業しているものを何でも見ることができることを好むので、私は選択してい/mntます。
underscore_d

1
@Tibi /にcdしてからmkdir c(またはドライブの名前)を実行すると、空のディレクトリで上書きするのではなく、ドライブのマウントポイントがlsに見えるようになることを発見しました。誰が考えただろうか?
barksdml

10

方法1

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

方法2

echo - / cygdrive acl > /etc/fstab


これを行う前と後の両方(方法1)、/cygwin64ルートディレクトリを参照し、機能cd /cしませんでした。cd /c仕事をするためにはやらなければならなかったmount c: /c
MM

/c私のソリューションはそれを示唆することはありませんでした
スティーブンペニー

2
「パスで/ cygdriveを削除する方法」とは、「/ cygdrive / cの代わりに/ cを機能させる方法」(および他の文字についても同様)を意味します。私のPATHは今、確かに示してい/ C / BLAの代わりに/ cygdriveの/ C / BLA
MM

1
2.9.0(0.318 / 5/3)2017-09-12 10:18 x86_64 Cygwinの時点で、方法1を実行するとユーザーはcd /cまたはにアクセスできますcd c:cd /まだ使用すると、cygwin64ディレクトリに移動します。
マルセルウィルソン

1

はい、マウントは動作するはずです。

mount -c /

それでもまだPATHを参照しているエントリがある場合は/cygdrive、おそらく再起動する必要があります。

また、を参照するPATH設定があるかどうかを確認/etc/profile/cygdriveます。


Cygwinを再起動するのですか、それとも実際にマシン全体を再起動するのですか?
iconoclast

Cygwinベースのプロセスをすべて終了する必要があると思います。これを行う最も簡単な方法は、マシンを再起動することです。
ミケル

私は自分の質問に対する答えを見つけたとき、通常は他の人の答えを優先しますが、あなたの質問は再起動(またはそのシミュレーション)が必要であり、私のものはcygwinのドキュメントにあるものなので、私は私のものに行きます。
iconoclast

あなたが再起動せずに働いたなら、ぜひ!
ミケル

しかし、マシンをリブートすると、この変更はなくなります。fstabに保存されているものに戻ります。
rustyx
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.