Windows-Subsystem-for-Linux
無法使用打開的文件句柄重命名目錄
在我的 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 機器上進行相同的測試時,我可以毫無問題地重命名文件。關於可能導致這種情況的任何想法?
是的,這是正常的 Windows 行為。在 Windows 下,打開文件有效地將其鎖定在文件系統上並防止其被移動。
重要的是要了解 WSL 不是虛擬機。它是視窗頂部的(薄)層,它使 Posix 可以訪問視窗。所以當你在 WSL 下打開一個文件時,你實際上是在 windows 下打開它,並且受制於 windows 的通正常則。
閱讀:
https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux
概述
WSL 提供了一個由微軟開發的兼容 Linux 的核心介面(不包含 Linux 核心程式碼),然後可以在其上執行 GNU 使用者空間,例如 Ubuntu、openSUSE、SUSE Linux Enterprise Server、Debian 和 Kali Linux。
更遠
硬體和文件系統訪問
由於沒有硬體仿真/虛擬化(與 coLinux 等其他項目不同),WSL 直接使用主機文件系統