NTFS 压缩与 compact
NTFS 压缩是文件系统层面的透明压缩:开启后系统在写入时自动压缩、读取时自动解压,应用程序完全无感。命令行用 compact 查看和设置:/c 启用压缩、/u 取消压缩、/s 递归子目录、/q 只输出结果。它的本质是用 CPU 时间换磁盘空间,对日志、归档这类低频读写的文本目录最划算,在 SSD 上收益有限。
基本信息
| 适用平台 | Windows NTFS 卷(客户端与服务器) |
|---|---|
| 启用压缩 | compact /c /s:目录 /i /q |
| 取消压缩 | compact /u /s:目录 /i /q |
| 查看状态 | compact /s:目录 /q |
| 互斥属性 | 与 EFS 加密不能同时启用 |
典型使用场景
- 日志与归档目录占用过大,用压缩回收空间而不必搬迁数据
- 批量检查某个目录下哪些文件已压缩、哪些没有
- 为冷数据开启压缩,把热数据保持不压缩以节省 CPU
- 迁移前查看压缩属性,避免复制工具处理不一致导致体积异常
- 磁盘空间告急时作为临时缓解手段,争取处理时间
- 配合文件服务器配额策略,压缩低价值的历史文档
常用示例
常用示例
compact /s:D:\Logs /q REM 查看该目录的压缩状态
compact /c /s:D:\Logs /i /q REM 递归启用压缩,遇错继续
compact /c /i D:\Logs\app.log REM 只压缩单个文件
compact /u /s:D:\Logs /i /q REM 取消压缩
REM 图形方式:文件属性 - 高级 - 压缩内容以便节省磁盘空间
REM 建议在业务低峰执行,首次压缩大目录会有明显 IO 与 CPU 开销参数速查
| 参数 | 作用 | 说明 |
|---|---|---|
| /c | 启用压缩 | 可作用于文件或目录 |
| /u | 取消压缩 | 解压后占用空间回升 |
| /s:目录 | 递归处理子目录 | 批量操作必带 |
| /i | 遇到错误继续 | 适合批量任务 |
| /q | 只报告结果 | 输出简洁便于脚本处理 |
压缩对顺序读取影响较小,对频繁就地更新、随机写的目录会增加 CPU 开销;数据库文件、虚拟机磁盘这类高热目录不建议开启压缩。
NTFS 压缩与 EFS 加密互斥,同一个文件不能既加密又压缩,规划存储策略时先想清楚需要哪种属性,避免方案冲突。