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. 以管理员身份运行终端
相关推荐
武藤一雄7 小时前
19个核心算法(C#版)
数据结构·windows·算法·c#·排序算法·.net·.netcore
淼淼爱喝水10 小时前
ESXi 给 Windows Server 2008 虚拟机添加磁盘教程
windows·esxi·虚拟机
勤自省10 小时前
《RDK X5 ROS 2 Humble 安装与验证:从零到 Hello World》
windows·ubuntu·ssh·ros2
docsz11 小时前
Windows开发环境配置
windows
eggwyw11 小时前
PHP搭建开发环境(Windows系统)
开发语言·windows·php
运维行者_14 小时前
通过OpManager的Windows服务监控能力释放最佳IT网络性能
服务器·开发语言·网络·windows·web安全·php
oscar99914 小时前
Windows下快速安装OpenCode及使用—PowerShell+Chocolatey
windows·opencode
元Y亨H14 小时前
Python 获取 Windows 设备信息笔记
windows·python
xiaoshuaishuai814 小时前
C# Submodule 避坑指南
服务器·数据库·windows·c#
一个小浪吴啊17 小时前
MacOS/Linux/Windows 跨平台一键安装OpenCode指南
linux·windows·macos·opencode