V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cheneydog
V2EX  ›  问与答

7z 格式有前途么?

  •  1
     
  •   cheneydog · 2022-08-18 19:05:54 +08:00 · 4997 次点击
    这是一个创建于 815 天前的主题,其中的信息可能已经有所发展或是发生改变。
    7z 格式压缩率确实高。

    然鹅一直用 7z 命令版,打包格式却是用 zip ,因为要发给别人。

    今天更新了版本,7z 命令版没法打 zip 的分卷了,窗口版还可以。这是打算分道扬镳了么?
    38 条回复    2022-08-19 18:22:51 +08:00
    XiLingHost
        1
    XiLingHost  
       2022-08-18 19:09:05 +08:00
    其实 tar.xz 挺好用的
    cheneydog
        2
    cheneydog  
    OP
       2022-08-18 19:17:02 +08:00   ❤️ 1
    @XiLingHost
    linux 上 gz xz bz 都挺常见的。
    但是 zip 真的太广泛了。发给别人我似乎还是只能选这个。
    有些人看到非 .zip .rar 的压缩包,第一反应就害怕,怀疑,不知道能不能解。特别是用 windows 的人。
    我自己也是主要用 windows 。
    xiaozecn
        3
    xiaozecn  
       2022-08-18 20:33:45 +08:00 via Android
    在 win 上我发给别人都是创建自解压文件
    pperlee
        4
    pperlee  
       2022-08-18 20:39:40 +08:00
    它本身格式的兼容性一般,但是它兼容其他格式是它的优势,如果命令行无法使用,那么就用回 tar 咯
    duke807
        5
    duke807  
       2022-08-18 22:10:40 +08:00 via Android   ❤️ 2
    zip 中文文件名和文件夹名跨平台会乱码
    还不如 tar.bz2 ,windows 解压没问题
    cssk
        6
    cssk  
       2022-08-18 22:17:19 +08:00 via iPhone
    @duke807 #5 你能指望大部分用户识得用 tar.bz2 ?
    tuding
        7
    tuding  
       2022-08-18 22:31:44 +08:00
    @xiaozecn #3 外行看到 exe 文件估计都不敢点开
    xmumiffy
        8
    xmumiffy  
       2022-08-18 22:33:42 +08:00 via Android
    没事 打包完手动修改后缀成 zip 反正只要装了解压软件基本都能解压 7z 除非他打算用资源管理器解压
    yfugibr
        9
    yfugibr  
       2022-08-18 22:34:04 +08:00 via Android   ❤️ 10
    @tuding 内行才不敢点开,外行都直接点的
    sickoo
        10
    sickoo  
       2022-08-18 22:36:04 +08:00
    只知道 7z 匿名性好,不会保存文件所有者用户名
    dant
        11
    dant  
       2022-08-18 22:42:10 +08:00
    打包完改名成 rar ,能解 rar 的九个里面有十个能解 7z (

    当然分卷可能不太行,7z 的分卷是直接切开,没有独立文件头。
    duke807
        12
    duke807  
       2022-08-18 22:43:45 +08:00 via Android
    @cssk windows 电脑上显示出来和 rar zip 一样图标,解压也是一样,点解唔得?
    Slurp
        13
    Slurp  
       2022-08-18 23:12:36 +08:00
    归档压缩格式最常用的不就是 .zip .rar .7z 。基本上不用怕别人解不了吧。
    wangkun025
        14
    wangkun025  
       2022-08-18 23:41:16 +08:00 via Android
    搞不懂你说的是 7z 软件还是 7z 格式。不是一回事
    jim9606
        15
    jim9606  
       2022-08-18 23:55:58 +08:00   ❤️ 1
    @cheneydog
    我试了下 windows x64 22.01 ,还能用啊。

    ```
    7z a -v1M archive.zip src/
    ```

    7z 好就好在支持比较全,新版连 vhdx 、qcow 、apfs 都能读,但你得接受几乎没有的外壳集成和老土 UI 。
    其实现在 windows 用 7z 什么的倒不是大问题,手机可能会有问题,因为 Android 系统只保证支持 zip+deflate 。

    7z 和 xz 默认压缩算法都是 LZMA2 ,压缩率是高,但这个慢已经很有问题了,所以目前有些地方推动换 zstd 了。
    win10 的话推荐用商店的 NanaZip ,是 7Zip 的一个衍生版,支持很多新算法,也是自带 CLI 别名的。

    @duke807 @pperlee

    zip 很早就支持的 utf8 文件名扩展,但不是所有软件在创建 zip 时默认启用这个(但读通常没问题) ,7zip 老早就支持了,但直到 21.07 才对 zip 默认启用这个扩展(-mcu=on)。

    zip 其实是扩展性很好的归档容器,兼容性好仅限 store/deflate 压缩算法和 ZipCrypto 加密,ZipCrypto 是已知有很多缺陷的。你完全可以用 7zip 创建五毒俱全但符合 PKZIP 标准的 zip(LZMA+AES128+ShiftJIS 文件名),当然这个用 Windows 的资源管理器是打不开的。

    ```
    7z a jisar.zip src/ -mm=LZMA -mcl=on -mcu=off -mcp=932 -mem=AES128 -pPASSWORD
    ```

    zip 已知的缺陷是不支持硬链接、固实、文件头加密,不过吧,又不是不能用。
    duke807
        16
    duke807  
       2022-08-19 00:35:53 +08:00 via Android
    @jim9606
    反正 windows 用戶壓縮的 zip 包,在我這就沒有不亂碼的
    還有,zip 包會丟文件權限屬性,譬如可執行屬性
    duke807
        17
    duke807  
       2022-08-19 00:36:31 +08:00 via Android
    除非是全英文的文件名稱
    angrylid
        18
    angrylid  
       2022-08-19 01:25:04 +08:00 via Android
    有观点认为 LZMA2 算法没前途,但 7Z 作为容器搭配 zstandard 有前途。
    ziseyinzi
        19
    ziseyinzi  
       2022-08-19 01:58:00 +08:00
    windows 平台打包和压缩不分,感觉 zip 作为打包的容器已经足够了,真需要高压缩率才需要 7z
    Slurp
        20
    Slurp  
       2022-08-19 03:55:33 +08:00
    还是要搞清楚目的。

    zstandard 更多是流式压缩,要求 非常快速度 + 压缩率能高就高。主要用途是网络传输,压 JSON XML 这种文本。

    然而肯定比不过 7z rar 这种的…… 人是正儿八经的归档压缩格式,要求是 解压速度 + 压缩率极致。

    之前压过 3 GB 的 CSV ,zstd 和 7z 都选最高压缩率。zstd 压了几个小时,7z 压了几分钟。结果 zstd 还比 7z 大 ~150 MiB 。
    ZC3746
        21
    ZC3746  
       2022-08-19 04:50:04 +08:00
    我在加拿大,这边上学提交作业,必须是 zip 格式,老师专门提示了,提交了 rar 格式就是 0 分。更别提 7z 这种更小众的格式了。
    bellchu
        22
    bellchu  
       2022-08-19 06:53:03 +08:00
    vmware 这类厂商都把 7za 集成进产品里的。你在说什么前途?
    jtshs256
        23
    jtshs256  
       2022-08-19 07:12:49 +08:00 via iPhone
    发给别人的反而用的 .rar+冗余
    Fule
        24
    Fule  
       2022-08-19 07:54:18 +08:00
    可控环境里,比如公司内部或者有一定技术能力的家人,可以用 7z 格式传文件。否则还是 .zip 保险。
    mejee
        25
    mejee  
       2022-08-19 08:04:55 +08:00
    看需求。大众人群对压缩文件的广泛需求还是:把多个文件合并成一个,便于分享、管理。并不是压缩率。在这方面 zip 比 7z 有优势
    FrankHB
        26
    FrankHB  
       2022-08-19 08:25:09 +08:00
    zip 的一个硬伤——容易遇到文件名乱码,上面有人提了。
    zip (仅指比较规矩的)可能唯一一个比较现实的好处就是现在 Windows 和 mac 等环境都原生支持解压( Linux 变数太多就算了)。但也不止 zip ,要针对具体系统部署也可以用自解压文件,这也有人提了。(至于点开……我会试试右键菜单。)
    因为历史原因,zip 可能有被各种奇形怪状的应用二次开发(像 jar 啊 apk 啊),而有些不太常见的 zip 可能到处都打不开,这也有人提了。别的格式没流行得那么混乱,虽然光看扩展名一样可能有问题(比如 rar4/rar5 )。

    7z 跟 xz 之类其实不是对等的。
    7z 是所谓归档的压缩容器格式,可以选择不同压缩算法,比如 LZMA2 基本就是 xz ,而压缩纯文本为主的文档我用 PPMd 压缩率暴打 LZMA (轻松差 10 倍;@Slurp 这问题是我从你这顺便看到的,但本来没打算找你茬,但是真有这种重量级负载好歹多了解一下怎么选型吧)。
    当然文件扩展名看不出算法有时是劣势,但同样影响压缩格式和效果的其它参数就更不用指望看到了。
    相比之下,gz/bz/xz 等是通常以文件流为单位的压缩格式,tar 是无压缩归档格式,两者并用才是 7z 和 zip 的类似物(除了存储 /无压缩的归档功能基本就是 tar——不过 tar 确保兼容 UNIX 权限)。

    可移植性基本都不成问题,主流系统上都能用,而 7z 基本是这里面除了 zip 以外最流行的。除了专用格式的工具,我是记不起不支持解压 7z 的非古董压缩软件。
    UI 问题也不大,命令行大差不差,GUI 嫌弃官方老土或者根本没有,就换个 PeaZip 之类的。
    嫌弃 tar.gz 太啰嗦改 tgz 体感也没差多少,当然 7z 默认比较省事。所以我自己的东西默认发二进制包就 7z 。
    villivateur
        27
    villivateur  
       2022-08-19 08:36:03 +08:00
    主流的压缩软件都支持 7z 解压的,发给别人没啥问题
    shakoon
        28
    shakoon  
       2022-08-19 09:29:54 +08:00
    没前途,普通用户是绝对不会主动用这种格式的,只要主流软件能解压就行了。就现在这个存储空间的价格,对 IT 专业的人来说压缩率相差 10%以内都几乎不会让人跳槽,更不用说普通用户了。
    7z 还有一个极大的硬伤在于,7-Zip 的 UI 实在是丑出天际,说落后 winzip 20 年已经算是客气话了。
    cheng6563
        29
    cheng6563  
       2022-08-19 09:38:07 +08:00
    我还一直用 rar 呢
    BenX
        30
    BenX  
       2022-08-19 09:54:37 +08:00
    第一,RAR 坚决反对。第二,能用 zip 都用 zip 包。第三,非要选用 7zip 。
    xqdoo00o
        31
    xqdoo00o  
       2022-08-19 10:03:43 +08:00
    @Slurp zstd 有浏览器支持吗
    DOLLOR
        32
    DOLLOR  
       2022-08-19 10:26:42 +08:00
    RAR 可以添加恢复记录,能在传输过程、存储介质出现错误之后修复自身。
    其他格式有类似的功能吗?
    xtreme1
        33
    xtreme1  
       2022-08-19 10:38:41 +08:00
    @DOLLOR
    我只知道 arc 也支持
    恢复记录本质就是添加一份纠错码嘛, 任何其它文件格式也可以通过 QuickPar 之类的工具自己生成, 缺点就是多一个文件
    Trim21
        34
    Trim21  
       2022-08-19 10:42:21 +08:00 via Android
    @xqdoo00o 应该是没有
    hertzry
        35
    hertzry  
       2022-08-19 10:47:10 +08:00
    Zip Windows 默认能解能压,但好多人喜欢用 RAR ,里面就是几个文档,服了,还得额外装个软件伺候着。
    mikeven
        36
    mikeven  
       2022-08-19 10:50:26 +08:00
    @FrankHB
    我还特地去看了一下 PPmd ,还想怎么能轻松差 10 倍,这么厉害,结果没有这么夸张
    URL: http://shakespeare.mit.edu/macbeth/full
    Compressed gzip on server: 55186 bytes
    Decompressed html on disk: 195747 bytes

    PPMd Test:

    Format: 7z
    Compression level: Ultra
    Dictionary size: 192 MB
    Word size: 32
    Solid block size: 'solid'
    SIZE: 37211 bytes

    LZMA Test:

    Format: 7z
    Compression level: Ultra
    Dictionary size: 64 MB
    Word size: 273
    Solid block size: 'solid'
    SIZE: 47921 bytes
    KevinChan
        37
    KevinChan  
       2022-08-19 16:09:44 +08:00
    @hertzry 有人用的系统里默认装的 RAR ,所以他们就用这个
    FrankHB
        38
    FrankHB  
       2022-08-19 18:22:51 +08:00
    @mikeven 不好意思,我的错。我原意是想说轻松压缩 10 倍(或者说跟 7z 的不压缩的“存储”配置比)并在再花费近似时间下)显著比 LZMA 效果好,但不是说比 LZMA 高效 10 倍,结果串起来了……
    实测的一些比较适合这样压缩的文件: https://osdn.net/projects/yslib/releases/p17163 ;压缩 10 倍算保守,实际近 20 倍,而跟比较快速的 LZMA 比结果大小一般好 2~3 倍( PPMd 字典往大了开 1536MB ,效果更好,压缩时间影响有限; LZMA 字典对结果影响不明显)。极限情况 LZMA 也 Ultra 压缩结果的大小其实并没差,但是压缩和解压时间就……太不实用了。另外这个是几年前测的,近年也许实现有改进时间差距可能缩小,不过我没见算法有明显变化,也没重试。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   918 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:16 · PVG 04:16 · LAX 12:16 · JFK 15:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.