mv:无法移动,WSL 中的权限被拒绝

mv:无法移动,WSL 中的权限被拒绝

我收到了mv: cannot move, Permission denied错误,但在声称这是一个重复之前,请先看看我尝试过什么:

首先,它与文件或目录模式无关:

$ mv -f .emacs.d .emacs.d.old
mv: cannot move '.emacs.d' to '.emacs.d.old': Permission denied

$ ls -Al . | grep emacs
drwx------ 1 me me 4096 2021-06-11 23:04 .emacs.d

ls -ld .
drwxr-xr-x 1 me me 4096 2021-06-12 00:17 .

$ sudo mv -f .emacs.d .emacs.d.old
mv: cannot move '.emacs.d' to '.emacs.d.old': Permission denied

$ mv -f .emacs.d ./.emacs.d.old
mv: cannot move '.emacs.d' to './.emacs.d.old': Permission denied

$ df .
Filesystem     1K-blocks      Used Available Use% Mounted on
rootfs         307276796 200040828 107235968  66% /

其次,我尝试了我知道的每个文件打开检查工具:

$ jobs | wc
      0       0       0

$ lsof | grep .emacs.d | wc 
      0       0       0

$ fuser .emacs.d | wc
      0       0       0

我试图关闭所有可能与.emacs.d目录相关或不相关的东西,包括关闭与目录无关的 vs 代码.emacs.d

全面披露:我正在使用适用于 Linux 的 Windows 子系统,但我认为我没有在任何其他 bash 实例中打开该目录。此外,如第一个输出所示,我的主目录位于 WSL 内,不在任何 Windows 文件夹下(即,应该与任何 Windows 程序无关)。

我不知道什么可能会阻止我重命名它新建目录。

答案1

这是旧版 WSL 实现中的一个错误,它一直固定所有打开的文件,但在关闭文件时却忘记跟踪它们。此问题已在最新版本的 WSL 和 WSL2 中得到修复。

作为临时黑客攻击,cp to target and rm the old source

请参阅 WSL 项目的 GitHub 问题

答案2

对我有用的是remote.WSL.fileWatcher.polling根据这个设置为 true文档

相关内容