Windows 10 文件名大小写敏感设置

Linux 天然支持文件名大小写区分,同一目录下 abcABC 是两个独立的文件。Mac OS 也可以通过格式化时选择区分大小写的文件系统来实现。Windows 默认不支持,NTFS 虽然存储时保留大小写,但查找时始终不区分。

问题来源

在 Windows 上执行 git clone 克隆某个 Linux 内核相关仓库时,出现了下面的警告:

复制代码
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:
  'include/uapi/linux/netfilter/xt_CONNMARK.h'
  'include/uapi/linux/netfilter/xt_connmark.h'
  'include/uapi/linux/netfilter/xt_DSCP.h'

原因很直接:仓库里同时存在大写和小写的同名文件,在"不区分大小写"的 Windows 文件系统上,后克隆的文件把先克隆的直接覆盖了,Git 检测到冲突就报了这个 warning。

解决方法

有两种方式可以解决:在 WSL2 终端里操作,或者用 fsutil.exe 给指定目录开启大小写敏感。

用管理员身份打开 cmd 或 PowerShell,切到 C:\Windows\System32,执行:

复制代码
fsutil.exe file SetCaseSensitiveInfo E:\github_code enable

成功的话会看到:

复制代码
PS C:\Windows\System32> fsutil.exe file SetCaseSensitiveInfo E:\github_code enable
已启用目录 E:\github_code 的区分大小写属性。

这个设置只对指定目录生效,不影响系统其他地方。

前提条件

以下四点缺一不可,否则命令会失败或报错:

  1. Windows 10 需要 1803(2018 年 4 月更新)或更高版本
  2. 已安装 WSL(Windows Subsystem for Linux)
  3. 目标目录所在分区为 NTFS 格式
  4. 以管理员身份运行终端
相关推荐
jyOverQ8 小时前
ChatGPT Windows 客户端点击无反应、有进程却没窗口?一次 MSIX 非系统盘启动卡死的完整排查
windows·chatgpt
还是大剑师兰特11 小时前
MySQL8.0 Windows完整安装教程
windows·mysql·大剑师
redfred14 小时前
HandBrake 使用教程:开源视频压缩工具 视频太大压缩 MKV转MP4 批量转码 硬件加速 Windows/macOS/Linux
windows·开源·音视频
kakakahahahaha14 小时前
【Windows】C盘拒绝访问0x80070005的7步排查
windows·电脑·内容运营·软件需求
万年咸鱼16 小时前
Java ArrayList 详解:原理、用法与实战
java·开发语言·windows
奈斯先生Vector16 小时前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc
yyywxk17 小时前
ChatGPT/Codex Windows 桌面版“幽灵会话”问题:网页端已删除,桌面端仍显示且无法删除/归档
windows·chatgpt
万年咸鱼18 小时前
Java List 接口详解:从基础到实战
java·windows·list
Neighbor_OldY18 小时前
【实战复盘】RDP暴力破解与内网横向移动溯源:Windows全套排查命令与事件ID硬核解析
运维·windows·web安全
深念Y19 小时前
Windows 11 工具链部署与 SSH 踩坑笔记
windows·笔记·ssh