And*_*ndy 8 compression archiving 7-zip
我希望能够无损压缩文件,如果原始文件与另一个用户的文件相同,我希望我们的两个压缩文件匹配,即使原始文件日期不同。
我想在压缩时最多使用 1GB 的 RAM。我倾向于使用非对称算法,因为我拥有的文件相当大,并且在具有 1GB RAM 且没有其他任何运行的 P4 机器上使用 7-zip 格式的 LZMA1“超”压缩它们至少需要一个小时。我认为 7-zip 和 FreeARC 可以用于我的目的。我试图找到我应该使用的命令,但我运气不佳。
编辑:即使创建日期不同,也应该生成 100% 相同的文件。这应该可以通过 Freearc 中的 --nodates 和 ???? 在 7 拉链。我正在寻找 7-zip 的等效命令,以及一种跨多台计算机标准化压缩的方法。
小智 11
创建几个相同的文件:
$ echo hello > file1.test
$ echo hello > file2.test
Run Code Online (Sandbox Code Playgroud)
压缩它们...
$ gzip file1.test
$ gzip file2.test
Run Code Online (Sandbox Code Playgroud)
观察时间戳字段作为唯一的区别:
$ hexdump file1.test.gz
0000000 8b1f 0808 TIME STMP 0300 6966 656c 2e31
0000010 6574 7473 cb00 cd48 c9c9 02e7 2000 3a30
0000020 0636 0000 0000
Run Code Online (Sandbox Code Playgroud)
有关时间戳的更多信息,请参阅RFC
现在,您可以使用在字节 8 之后开始的 MD5,将文件中的这四个字节归零并丢失它们的时间戳,或者从这些 gzip 中提取 CRC16(另请参阅 RFC 以获取有关如何提取此信息的信息)
或者,您可以在没有时间戳的情况下进行保存:
$ echo test > file1.test
$ echo test > file2.test
$ gzip -n file1.test
$ gzip -n file2.test
$ md5sum file1.test.gz
cfe4ddf1c4c3891b4ff4a1269b42db82 file1.test.gz
$ md5sum file2.test.gz
cfe4ddf1c4c3891b4ff4a1269b42db82 file2.test.gz
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3756 次 |
| 最近记录: |