jww*_*jww 5 compression gzip archiving filenames
这个问题源于 Stack Overflow 上的一个 Crypto++ 库问题:如果使用 Gzip 类压缩,如何将文件名添加到存档?.
RFC 1952 中指定的 Gzip具有原始文件名的可选字段:
(if FLG.FNAME set)
+=========================================+
|...original file name, zero-terminated...| (more-->)
+=========================================+
Run Code Online (Sandbox Code Playgroud)
如果FNAME
在标志字段中设置了该位,则存在原始文件名。
我们将该功能添加到 Crypto++ 并在 OS X 上进行了测试。在 OS X 上,gzip
程序 The Unarchiver(默认存档程序)和Archive Browser(App Store 购买)似乎不支持原始文件名。也就是说,每个解压缩到一个文件名,即没有gz
扩展名的档案名;而不是出现在标题中的原始文件名。
例如,这是存档浏览器下的图像。原始文件名字段设置为test-filename.txt
,但该工具将文件名显示为gzip-test
,并将其解压缩为名为 的文件gzip-test
:
GZip
(and Gunzip
)不是IEEE 标准的Unix Command,所以我真的不知道在哪里寻找有关预期行为的知识。
这是预期的行为吗?还是我在三个不同的程序中看到了一个错误?
如果是预期的,那么原始文件名有什么实际用途?
根据gzip 手册页,使用时使用-N
或--name
选项可以gunzip
恢复原始文件名。-N
是压缩时的默认值(因此gzip
始终保存原始文件名),但在解压缩时不是,因此必须与gunzip
.
我对此进行了如下测试:
$ ls
test.txt
$ gzip test.txt
$ ls
test.txt.gz
$ mv test.txt.gz widget.gz
$ gunzip -N widget.gz
$ ls
test.txt
Run Code Online (Sandbox Code Playgroud)
...这是我们正在寻找的结果。
归档时间: |
|
查看次数: |
4539 次 |
最近记录: |