创建TAR或TAR.GZ
无需打开终端,就能生成Linux和macOS所用的压缩包格式。全程不存储任何文件。
- 绝不存储
- 无需排队,无需等待
- 无需注册,无水印
使用方法
添加文件
数量不限,可以包含文件夹。
选择TAR或TAR.GZ
普通TAR只打包不压缩。TAR.GZ会压缩整个包,这通常就是您想要的。
下载
生成后直接保存到您的下载文件夹。
为什么TAR体积上胜过ZIP,便利性上却不如
TAR不压缩。它把文件首尾相连拼成一条数据流,每个文件前面有一个512字节的文件头,记录名称、大小、权限、所有者和时间戳,而压缩是包裹在整个结果外面的另一层。正是这种叠加结构,让.tar.gz比同样文件的ZIP更小:gzip看到的是一条连续的数据流,能利用文件之间的重复内容,而ZIP逐个压缩文件,做不到这一点。对于装满相似文档或源代码的文件夹,差距往往很大。
代价则在另一端付出。由于压缩包裹了一切,.tar.gz没有目录——要列出内容,就得从头开始解压;要取出最后一个文件,就得全部解压。而ZIP不管多大都能瞬间列出。哪种格式更好,完全取决于压缩包是否会被整个解压——备份和源代码发布包总是如此。
已经压缩过的文件会彻底改变这笔账。JPEG、MP4或PDF打成的TAR,几乎不会从gzip这一步获益,因为这些内容的重复部分早已被去除——压缩包基本就是所有输入文件之和。在这种情况下,TAR依然值得用,理由和ZIP一样:发送一个文件而不是许多个,只是不能指望它缩小体积。
权限写入的是合理的默认值,而不是从您的文件中读取的,这是实话实说的限制。网页无法访问您磁盘上的权限位、所有权或符号链接——它只能拿到文件内容和名称,别的一概没有。所以可执行脚本放进压缩包后不再可执行,符号链接也无法以链接的形式记录下来。对于一个装文档的.tar.gz,这无关紧要;但如果要打包的东西将来要被解压并运行,这恰恰是这个格式的全部意义所在,而这里缺少了它。
如果您需要的是别的
凡是元数据很重要的场景——备份、源代码发布、在电脑之间迁移目录树——tar -czf archive.tar.gz folder/才是正确的工具,每台Mac和Linux电脑都已自带,Windows从2018年起也内置了它。它会记录真实的权限、所有权、符号链接和时间戳,以流式写入磁盘,没有大小限制,生成的也正是每个收件人期望在tar包里看到的内容。
如果想让文件更小,应该换压缩方式,而不是换容器:tar -cJf archive.tar.xz folder/使用xz,通常比gzip小得多,只是更耗时;而--zstd几乎一样小,速度却快得多。当前所有Unix系统都能读取这两种格式。如果收件人使用Windows且不太懂技术,普通的ZIP仍然是更贴心的选择。
常见问题
该选TAR还是TAR.GZ?
几乎总是选TAR.GZ——普通TAR完全不压缩,压缩包的大小就是里面所有文件的总和。当内容本身已经压缩过,或后续环节需要自己来压缩时,普通TAR才派得上用场。
Linux能识别这里生成的压缩包吗?
能,而且这是经过测试的,不是想当然:每次构建都会检查GNU tar本身能否逐字节无误地列出并解压这个页面生成的文件。长文件名以POSIX pax文件头写入,这是标准扩展,Windows上的bsdtar和7-Zip都能顺利读取。
我的文件会被存储在什么地方吗?
不会。压缩包生成后直接保存到您的下载文件夹,之后不保留任何内容。这一点在这里很重要:人们最常需要打包的东西——文档、照片、一整个文件夹的工作资料——恰恰是不该先交给陌生人服务器的东西。
为什么要用它而不用ZIP?
多半是因为别的东西要求用它——服务器、部署脚本、用Linux的同事。它确实有一个技术优势:TAR.GZ把整个包当作一条数据流来压缩,而不是逐个压缩文件,所以当您有大量相似的小文件(比如源代码或日志)时,它往往明显比ZIP小。如果只是给一个用Windows的人发一个压缩包,ZIP更友好。
有大小限制吗?
取决于可用内存,而不是固定的大小上限。在普通电脑上,几百个文件、几GB都没问题;手机能处理的会少一些。
小贴士: TAR本身不做任何压缩,体积的缩小全靠gzip这一步——已经压缩过的文件(JPEG、MP4、PDF)几乎不会变小。文件权限会写入合理的默认值,因为浏览器无法从您的磁盘读取真实权限。
把这个工具放到您的网站上
博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。