- windows和linux在文件系统上的差异,文件名大小写敏感的问题。
众所周知,win32对文件名大小写不敏感,linux对文件名大小写敏感。
起因:
因为之前有一次win10的wsl2系统坏了,只留下了vhd磁盘文件。当时是通过将另一台电脑vhd文件覆盖了另一台电脑下的wsl2的vhd文件,然后将其中需要的文件拷贝出来的。所以,从那以后,我都习惯会在wsl2外头建一个专用文件夹。从此埋下了这个坑。
现象:
最近在搞zynq,用tar命令解压了一版petalinux的工程到了这个专用文件夹下。
在编译过程中产生了错误:stamp.oS找不着。跟进路径一看,没有stamp.oS但有个stamp.os。
于是我在windows下进行了解压,中间就提示我文件名相同,是否覆盖了。
仔细看了看俩文件名,只有大小写不一样。然后到wsl2解压的一看,得,只剩一个了。想必编译的错误也是同样的原因,文件被覆盖丢失了。
解决方案:
二选一
a. 在wsl2的目录下使用。
b. 将该文件夹设置为大小写不敏感。
通过命令,设置该目录下大小写敏感。要求为空目录才能设置。更多见调整区分大小写 | Microsoft Docs。fsutil file setCaseSensitiveInfo <目录名称> [<enable>|<disable>]
网友评论