跳到正文

创建TAR或TAR.GZ

无需打开终端,就能生成Linux和macOS所用的压缩包格式。全程不存储任何文件。

  • 绝不存储
  • 无需排队,无需等待
  • 无需注册,无水印

使用方法

1

添加文件

数量不限,可以包含文件夹。

2

选择TAR或TAR.GZ

普通TAR只打包不压缩。TAR.GZ会压缩整个包,这通常就是您想要的。

3

下载

生成后直接保存到您的下载文件夹。

为什么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)几乎不会变小。文件权限会写入合理的默认值,因为浏览器无法从您的磁盘读取真实权限。

把这个工具放到您的网站上

博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。