看起来,Windows 会以尽可能低的压缩率压缩 NTFS 压缩文件夹。虽然这可能有利于提高速度并减少 CPU 负载,但对于很少访问的文件(备份文件夹),增加压缩率可能更为明智。是否有一些参数可以调整以实现此目的?
答案1
简短回答
不,目前还不可能。
长答案
文件和文件夹1通过传递FSCTL_SET_COMPRESSION
控制代码和压缩状态到DeviceIoControl
API函数。压缩状态可以是以下之一:
COMPRESSION_FORMAT_NONE = 0
COMPRESSION_FORMAT_DEFAULT = 1
COMPRESSION_FORMAT_LZNT1 = 2
任何非零值都表示目标项将被压缩。来自官方文档:
LZNT1压缩算法是唯一实现的压缩算法。因此,使用LZNT1压缩算法作为
DEFAULT
压缩方法。
LZNT1 算法专为提高速度而设计,并且无法设置自定义压缩级别。
1文件夹实际上并未被压缩:其压缩属性仅为新文件和子文件夹提供默认压缩状态。
附加信息
NTFS 文件系统卷支持基于单个文件的文件压缩。NTFS 文件系统使用的文件压缩算法是 Lempel-Ziv 压缩。这是一种无损压缩算法,这意味着在压缩和解压缩文件时不会丢失任何数据,而不是有损压缩算法,例如 JPEG,每次进行数据压缩和解压缩时都会丢失一些数据。
在 NTFS 文件系统上,压缩是透明执行的。这意味着无需更改现有应用程序即可使用它。
如果压缩大于 30 GB 的文件,压缩可能不会成功。
来源:文件压缩和解压缩
NTFS 中的压缩算法设计为支持最大 4 KB 的簇大小。当 NTFS 卷上的簇大小大于 4 KB 时,所有 NTFS 压缩功能都不可用。
来源:文件和文件夹压缩
进一步阅读
答案2
一般来说这是不可能的,正如and31415 的回答。
然而微软添加了一些新的 NTFS 压缩选项和算法在 Windows 10 中,现在有一种方法可以更改压缩率:
COMPACT [/C | /U] [/S[:dir]] [/A] [/I] [/F] [/Q] [/EXE[:algorithm]]
[/CompactOs[:option] [/WinDir:dir]] [filename [...]]
...
/EXE Use compression optimized for executable files which are read
frequently and not modified. Supported algorithms are:
XPRESS4K (fastest) (default)
XPRESS8K
XPRESS16K
LZX (most compact)
新算法旨在用于新的紧凑操作系统功能(如您在上面的选项中看到的/CompactOs
)。这个想法是压缩只读、备份和不常访问的系统文件比率最高的。恢复分区将被删除,压缩文件将用于执行(如果已经是最新版本)和恢复目的
LZX 算法是相当高效归档时。尽管选项名称和描述都是关于“可执行文件”的,但该选项可应用于任何文件
E:\测试>紧凑/a 清单 E:\test\ 添加到此目录的新文件将不会被压缩。 1050909 : 1050909 =1.0 至 1 一些文本.txt ... E:\测试>compact /c /exe:lzx sometext.txt 压缩 E:\test\ 中的文件 某些文本.txt 1050909 : 176128 =6.0 比 1[好的] 1 个目录中的 1 个文件被压缩。 总共 1,050,909 字节的数据存储在 176,128 字节中。 压缩比为6.0比1。
然而与旧算法不同,它们不支持即时编辑,因此写回文件会将其解压缩。
E:\测试>echo x >> 某些文本.txt E:\测试>紧凑/a 清单 E:\test\ 添加到此目录的新文件将不会被压缩。 1050913 : 1050913 =1.0 至 1 一些文本.txt
需要注意的是,您不能将文件夹设置为使用这些新算法自动标记要压缩的新文件,因为如帮助部分所述compact
(重点是我的)
/C 压缩指定文件。目录将被标记 这样之后添加的文件就会被压缩除非/EXE 已指定。 /U 解压指定文件。目录将被标记 这样之后添加的文件就不会被压缩。如果 /EXE 被指定,只有压缩为可执行文件才会 未压缩;如果省略,则只有 NTFS 压缩 文件将被解压缩。
因此,如果你想将它们用作备份文件,你可能必须在备份后或一段时间后定期运行脚本来手动压缩
不幸的是,这是 Windows 10 中的新功能,因此它不能在旧版本中使用。然而NTFS-3g 支持它,因此从 Linux 访问它不会有问题。如果您不使用 Windows 10,您可以运行 Linux live USB 或 Windows 10 PE 来打开这些文件
答案3
你可以通过第三方应用来提高压缩率。最好的例子是zipmagic.co 我在笔记本电脑上用了一年,没有出现任何问题。但请注意,使用 NTFS 或 Zipmagic 压缩需要 SSD 硬盘,因为压缩会使您的驱动器完全碎片化并变得毫无用处!如果您有 SSD 驱动器,那就继续享受吧!
答案4
遗憾的是到目前为止,Windows 下的 NTFS 文件系统仅支持 Xpress4k、8k、16k 和 LZX 这几种压缩方法。
但是,如果你将选项从 NTFS 移开,例如文件系统,可能会获得更好的压缩率和使用体验。