UbuntuサブシステムのWindows 10でディレクトリ内のファイルを開き、ファイルが開いている間にディレクトリ名を変更しようとすると、それはできません。
例:
$mkdir demo
$touch demo/test.txt
$CtlZ
$[2]+ Stopped vim demo/test.txt
$mv demo demo100
mv: cannot move 'demo' to 'demo100': Permission denied
これでファイルを閉じて名前を変更できます。
$mv demo demo100
$ls demo100
test.txt
これは予期しない動作のようです。通常のUbuntuシステムで同じテストを実行すると、問題なくファイル名を変更できました。この問題の原因に関するアイデアはありますか?
答え1
はい、これは通常のWindowsの動作です。 Windows でファイルを開くと、ファイルシステムでそのファイルが効果的にロックされ、移動が防止されます。
WSLは仮想マシンではないことを理解することが重要です。 Posixなどのウィンドウへのアクセスを許可するウィンドウの上部(薄い)レイヤーです。したがって、WSLでファイルを開くと、Windowsの一般的な規則に従って実際にWindowsでファイルを開くことになります。
読む:
https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux
概要
WSLは、Ubuntu、openSUSE、SUSE Linux Enterprise Server、Debian、Kali LinuxなどのGNUユーザースペースを実行できるMicrosoftによって開発されたLinux互換カーネルインタフェース(Linuxカーネルコードを除く)を提供します。
もっと遠く
ハードウェアおよびファイルシステムへのアクセス
coLinuxなどの他のプロジェクトとは異なり、ハードウェアエミュレーション/仮想化がないため、WSLはホストファイルシステムを直接使用します。