WSL 中出现 :Zone.Identifier 文件的原因和解决方法
2 min read
因为使用 Windows 和 WSL 作为开发环境,经常出现 :Zone.Identifier 文件,所以写了这篇博客来记录其原因和解决方法。
原因
从 Windows 直接下载文件或移动文件到 WSL 目录时,会出现类似 :Zone.Identifier
的文件。
其中包含了一些跟关联文件有关的元数据。
该文件因为微软的 NTFS 功能而出现,虽然没有实际用途。
但因为文件名包含 :
冒号,所以可能会破坏某些 Linux 脚本的运行。
所以需要处理它。
解决方法
- 通过修改 Windows 组策略禁用附加元数据文件,步骤如下:
- 打开组策略编辑器:快捷键
Win + R
进入运行,输入gpedit.msc
; - 导航:
用户配置 -> 管理模板 -> Windows 组件 -> 附件管理器
; - 设置:双击
文件附件中不保留区域信息
,设置为已启用
,并重启系统。
- 打开组策略编辑器:快捷键
- 移动文件时,不要通过资源管理器,而是通过 VS Code,这样不会生成该文件。
- 通过这条命令删除这些文件:
find . -name "*:Zone.Identifier" -type f -delete
。
参考链接
Zone.Identifier Files when copying from Windows to WSL filestructure #4609
Zone.Identifier Files when downloading from Windows to WSL file structure #7456