Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 445|回复: 2

[分享] 使用wsl2扩展属性获取和设置每个目录的区分大小写 [复制链接]

Rank: 9

UID
4720714
帖子
5154
PB币
6910
贡献
0
技术
11
活跃
1626
发表于 2020-12-8 22:44:27 |显示全部楼层
本帖最后由 chengyiqun 于 2020-12-8 23:21 编辑

从Windows Insider内部版本17692开始,现在可以从WSL内部检查和修改目录的区分大小写标志。 区分大小写使用名为system.wsl_case_sensitive的扩展属性公开。 对于区分大小写的目录,此属性的值为0;对于区分大小写的目录,此属性的值为1。

要从终端操作扩展属性,可以使用setfattr和getfattr应用程序。 在Ubuntu上,可以使用sudo apt install attr安装这些文件。

使用这些应用程序,您可以使用以下方法确定目录是否区分大小写:
  1. getfattr -n system.wsl_case_sensitive <path>
复制代码

将目录标记为区分大小写:
  1. setfattr -n system.wsl_case_sensitive -v 1 <path>
复制代码

将目录标记为不区分大小写:
  1. setfattr -n system.wsl_case_sensitive -v 0 <path>
复制代码

下面显示的示例将不区分大小写的目录标记为区分大小写:


注意:更改区分大小写属性需要在目录上具有“写入属性”,“创建文件”,“创建文件夹”和“删除子文件夹和文件”权限。 在某些情况下,如果文件夹位于您的用户配置文件之外,则即使您拥有该目录,默认情况下也可能没有所有这些权限。 如果更改属性时收到拒绝访问错误,请确保对文件夹具有正确的Windows权限。

更改区分大小写属性要求在WSL中当前没有打开任何文件夹的后代。 在包含名称仅大小写不同的文件的目录上,无法禁用每个目录的区分大小写。

区分大小写属性在不支持按目录区分大小写的文件系统(例如FAT或SMB文件系统)上不可用。 当前,仅本地NTFS卷支持按目录区分大小写。
区分大小写继承
以前,必须将创建的每个目录显式标记为区分大小写。 现在,我们做到了这一点,以便在创建新目录时继承每个目录的区分大小写标志。 这意味着在区分大小写的目录中创建的新目录会自动区分大小写。

这样做的最大好处是,在区分大小写的目录中使用某些Windows工具现在要容易得多。 例如,您可以使用内置的tar.exe在大小写敏感的目录中提取存档,并确保整个目录子树都区分大小写。 同样,如果您使用Windows的Git克隆存储库,或者使用诸如Visual Studio Code之类的编辑器创建新目录。 这使得使用Windows应用程序区分大小写的目录变得更加容易,而无需修改这些应用程序。

DrvFs中的区分大小写安装选项
使用 DrvFs 在 WSL 中安装 Windows 卷时,可以使用 或装载选项指定默认区分大小写行为。默认情况下,使用 时,新目录不敏感大小写。默认情况下,它们对大小写敏感。在这两种情况下,已标记为大小写敏感的目录将被视为对大小写敏感。
case=offcase=dircase=offcase=dir

这些选项并不新鲜,但与扩展属性和区分大小写继承相结合,它们使您可以更好地控制每个目录区分大小写的位置。
system.wsl_case_sensitive

现在,如果使用装载 DrvF,则很容易在希望目录对大小写敏感时标记它们,并且即使使用 ,也可以确定整个子树都是对大小写敏感的。
case=offcase=off

下面的示例显示在大小写敏感目录中创建的新目录如何也为大小写敏感,即使使用 :
case=off



我们建议您开始使用挂载DrvFs卷,并仅在需要时启用每个目录的区分大小写。 可以使用/etc/wsl.conf文件来完成。 以下是示例wsl.conf文件,该文件设置为自动挂载的DrvFs卷的默认值:
case = offcase = off


原文:
https://devblogs.microsoft.com/commandline/improved-per-directory-case-sensitivity-support-in-wsl/



Rank: 9

UID
4787678
帖子
2847
PB币
304
贡献
0
技术
0
活跃
1219
发表于 2020-12-8 22:58:36 |显示全部楼层
感觉好厉害、好专业

Rank: 7Rank: 7Rank: 7

UID
4853502
帖子
1460
PB币
1650
贡献
0
技术
0
活跃
670
发表于 2020-12-8 23:01:32 |显示全部楼层
看得我眼都花了
回顶部
Copyright (C) 2005-2021 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛