WSL中vscode修改文件名报错Unable to move/copy

正常使用 Windows 开发,在部署编译的时候因为大小写问题报错,想安装一个 WSL Debian 系统,在里面编译一下试试,可以正常编译。

这里有一个误区,我一直以为 Windows 和 MacOS 不区分大小写,Linux 是区分大小写的。

其实不是的,文件大小写敏感是与文件系统有关的, Windows 默认的文件系统(NTFS)不区分文件名的大小写,而在 Linux 比较常见的 Ext4 文件系统中,文件名是区分大小写的。

于是就从服务器部署的日志查看是哪些文件名有问题,逐一排查。

在修改一个文件夹的大小写时,报了下面的错误:

Unable to move/copy 'vscode-remote://wsl+debian/mnt/d/lib/packages/src/Line-chart' because target 'vscode-remote://wsl+debian/mnt/d/lib/packages/src/line-chart' already exists at destination.

不能修改,那只能用命令来修改了,常见的方法有两种:

强制移动/复制

使用 mvcp 命令,并使用 -f 选项来强制执行。

mv -f Line-chart line-chart

cp -rf Line-chart line-chart

修改文件名

使用 mv 命令来修改文件名:

修改单个文件名:

mv old-file-name new-file-name

old-file-name 是原始文件名,new-file-name 是新文件名。

例如,将 Line-chart 修改为 line-chart:

mv circular-bar-Line-chart circular-bar-line-chart

批量修改多个文件名:

for file in *; do
  mv "$file" "$(echo $file | tr 'A-Z' 'a-z')"
done

上述命令 tr 'A-Z' 'a-z'是将所有大写字母转换为小写字母的命令。这是一个示例,你可以根据需要修改转换规则。

注意:要小心使用这些命令,因为它会覆盖目标位置的同名文件,可能会导致数据丢失。

结果还报错:

mv: cannot move 'Line-chart' to a subdirectory of itself, 'line-chart/Line-chart'

归根结底还是大小写敏感问题,可以先改成一个临时名称,再改回来:

修改成临时名称:

mv  Line-chart  line-chart-temp

将临时文件名重命名为目标文件名:

mv line-chart-temp line-chart


未经允许不得转载:前端资源网 - w3h5 » WSL中vscode修改文件名报错Unable to move/copy

赞 (0)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)