いちいち"/cygdrive/c"っていれるのが面倒なので、"/c"ってなるようマウントテーブルをいじる
※cygwin 1.7 以降
以下のような記述を、/etc/fstab
あるいは/etc/fstab.d/(ユーザ名)
*1に追加する。
none / cygdrive binary,posix=0,user 0 0
以下、この記述の説明です。
- none
- 通常1番目のパラメタには
c:/hoge/fuga
などのWindowsネイティブなパスを指定する((ただしパスの区切りは\
じゃなくて/
となっていることに注意))が、3番目のパラメタがcygdrive
となっている場合は何でもいいみたいです。 - /
- ドライブに割り当てられるプリフィクスです。
/
とすると、ルートディレクトリ直下に各ドライブがマウントされるようになります。 - cygdrive
- この行が、cygdriveプレフィクスの設定であることを示します。
- binary,posix=0,user
- 各種オプションです。
binary
は、ファイルアクセス時に改行コードの変換を行わない、posix=0
は、ファイル名の大文字小文字を区別しない、user
は、mount
コマンドによる設定の上書きが可能であることを示しています。
なお、現在のプレフィクスの設定がどうなっているかは、mount -p
コマンドで確認できます。
追記
最初の記事で、誤って以下のように記述してましたが、訂正しました。
c:/ /c cygdrive binary,posix=0,user 0 0
で、なぜ気づかなかったかというと、上記のように設定しているにもかかわらず、ちゃんと/
にドライブがマウントされていたからでした。
なぜ上記のような記述で/
にマウントされたのか?
原因は、fstabを変更する前に、mount --change-cygdrive-prefix /
コマンドでプレフィクスを変更していたからでした。
mountコマンドはデフォルトでnouser、つまりユーザによる設定の上書きができない状態となります。(/etc/fstab.d/usernameファイルによるユーザ個別の設定の上書きを許さない)
また、mountコマンドの設定はcygwinのセッションが一つでも残っていると、その設定が保持されます。
逆に言うとmountコマンドの設定をクリアするためには、開いているすべてのcygwinセッションを閉じる必要があります。
前述の間違った設定で動作確認したとき、うまく行っているように見えたのは、mountコマンドでプレフィクスを変更して、かつ、cygwinのセッションを継続したまま新規cygwinセッションを開いて確認したためでした。
*1:このファイルはデフォルトでは存在しないので自分で作成する必要がある