Windows 10でLinuxを使う (その16) - ファイル名で大文字と小文字を区別して使う(未来編)

【連載】

にわか管理者のためのLinux運用入門

【第116回】Windows 10でLinuxを使う (その16) - ファイル名で大文字と小文字を区別して使う(未来編)

[2018/03/06 09:40]後藤大地 ブックマーク ブックマーク

サーバ/ストレージ

Windowsでは大文字と小文字は区別しない動作がデフォルト

Linuxユーザーである本連載の読者ならば、当然Linuxではファイル名の大文字と小文字は区別して扱われていることを知っていると思う。例えば「hoge.txt」というファイルと「HOGE.txt」というファイルは別のファイルだ。

しかし、Windowsでは話が違う。現在主に使われているWindowsのファイルシステムでは、機能上は大文字と小文字を区別して扱っているが、互換性のためにこうしたファイルを操作するためにAPI側が大文字と小文字を区別しない動きをデフォルトにしている。以前は大文字と小文字を区別していなかったためだ。

試しに、WSLで次のようにWindowsのファイルシステム(DrvFs経由)のほうにhoge.txtとHOGE.txtというファイルを作ってみる。当然、Linuxからはこのファイルは異なる別のファイルとして扱える。

WSL側からWindowsのファイルシステム上でhoge.txtとHOGE.txtというファイルを作る

今度はWindows側からこのファイルにアクセスしてみる。すると次のように、hoge.txtというHOGE.txtという2つのファイルは異なったものとして認識されるものの、実際にファイルにアクセスするとHOGE.txtのみがアクセスできていることを確認できる。hoge.txtへのアクセスはHOGE.txtへのアクセスになっているわけだ。

Windows側からは異なるファイルとして確認できるものの、実際には片方のファイルにしかアクセスできない

Windowsには既に大文字と小文字を区別した動作をするようにする機能も用意されているが、この機能を有効にするとドライブ全体で大文字と小文字を区別して動作するようになるため、もしかすると既存のアプリケーションでいろいろと問題が発生する可能性がある。まるごと設定を変更するというのはリスキーだ。

それならば、WSL側で大文字と小文字を区別する必要があるような名前付けをしなければよいことになる。まさにその通りなのだが、Microsoftがこうした挙動をWindows側で解決する機能を実装してきたので、取り上げておこうと思う。

Insider Build 17093からはディレクトリごとに大文字小文字区別を設定可能

Microsoftは2018年2月28日(米国時間)、「Per-directory case sensitivity and WSL - Windows Command Line Tools For Developers」において、Windows Insider Build 17093から、ディレクトリごとに大文字と小文字を区別するかどうかの設定が行えるようにしたと発表した。この機能を利用することで、WSLからのWindows側のファイルの扱いを改善すると説明している。

MicrosoftはWindows Insider Build 17107からディレクトリごとに大文字と小文字を区別したり、またはどちらに設定されているのか確認したりするためのコマンドとして「fsutil.exe」ファイルを追加したと説明している。利用方法は次の通りだ。

● fsutil.exeコマンドを使って大文字小文字区別の有効無効を確認する方法

fsutil.exe file queryCaseSensitiveInfo パス

● fsutil.exeコマンドを使って大文字小文字区別を有効化

fsutil.exe file setCaseSensitiveInfo パス enable

● fsutil.exeコマンドを使って大文字小文字区別を無効化

fsutil.exe file setCaseSensitiveInfo パス disable

fsutil.exeコマンドの使用例 - 資料: Microsoft提供

WSL側から大文字・小文字の区別の設定をどう利用するかは、DrvFsマウント時にオプションとして指定できる。今のところ「case=dir」「case=off」「case=force」を指定することができ、/etc/wsl.confにオプションを書いておける。しかし、最終的にはデフォルトの動きがこのディレクトリ別大文字・小文字区別設定を利用するようになりそうなので、ユーザー側は特に気にしなくてもいつの間にかうまいこといっている、といった状況になるように見える。

WindowsはUNIX系のOSとは挙動が異なる点がいくつかあるので、今回のような改善が必要になる。しかし、状況はかなり良さそうだ。MicrosoftはWSLに関連する機能の開発に取り組み続けている。次のアップデートで、WSLはさらに実用性を増すことになりそうだ。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

なぜ今、統合システムなのか? 押さえておくべき「3つのインパクト」

なぜ今、統合システムなのか? 押さえておくべき「3つのインパクト」

ガートナー ジャパンは10月31日~11月2日、都内で「Gartner Symposium/ITxpo 2017」を開催。11月1日には同社 主席アナリストの青山浩子氏が登壇し「CIOが理解すべき統合システムの3大インパクト」と題する講演を行った。本稿では、講演の内容をダイジェストでお届けする。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします

会員登録(無料)

注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
知りたい! カナコさん 皆で話そうAIのコト
教えてカナコさん! これならわかるAI入門
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る