web-dev-qa-db-ja.com

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

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

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

私の.bashrcにありますが、PATH変数を見ると、すべてに/ cygdrive /が含まれています。 PATHを修正するスクリプトを記述できると思いますが、これは、私が既に行っているものよりもさらに厄介です。より良い方法があるはずです、そしてGitのbashシェルはCygwinの古いバージョンを(AFAIK)使用しており、何らかの方法でを付加しないように構成されているプリペンド/cygdriveどこでも。では、どうすればよいですか 「Suck」ノブをゼロに設定しますか?

Gary Larson comic

38
iconoclast

/ etc内をぐるぐる回ったことが判明 a link グーグルはしなかった。ファイル/etc/fstabでこれを制御できることがわかりました。言う行を追加するだけです

none / cygdrive binary 0 0

そして問題は修正されるべきです。 .bashrcでの厄介な修正はなくなり、混乱した$ PATHもなくなりました。

40
iconoclast

方法1

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

方法2

echo - / cygdrive acl > /etc/fstab

12
Steven Penny

はい、 mount で動作するはずです。

mount -c /

/cygdriveを参照するエントリがPATHにまだある場合は、おそらく再起動するだけです。

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

2
Mikel

Cygpathについてはどうですか(UnixおよびWindows形式のパスを変換するか、システムパス情報を出力します)...

$ pwd
/cygdrive/c/Windows/System32

$ cygpath -w $(pwd)
C:\Windows\System32
1
cygwinuser1234