可以处理所有流行压缩/归档格式(egtar,gzip,bzip2,zip)的Unix / Linux程序?

可以处理所有流行压缩/归档格式(egtar,gzip,bzip2,zip)的Unix / Linux程序?

我有时会对运行常见的 Unix 归档和压缩软件(例如 gzip、bzip2、zip、tar)所需的各种命令行选项感到困惑。

有没有一个程序可以针对常见情况做到我所说的?例如:

program --compress --gzip foobar
program --extract foobar.tar.bz2
program --extract foo.zip

答案1

atool是为这项工作而设计的。手册页的副本可用这里

要压缩文件,请使用

apack ARCHIVE FILE

并使用

aunpack ARCHIVE

(或者您可以分别使用atool -aatool -x)。

它适用于几乎所有您能想到的存档格式,包括 gzip、bzip、lzip、7z、rar、ar、deb、rpm、jar[1] 以及大多数 tar 和压缩方法的组合。

与 7zip 相比,它的优势在于7zip 删除可执行权限。因此,例如,7zip 使得从存档源安装软件变得更加困难,因为您需要chmod +x在运行任何 make 或任何安装脚本之前手动获取相应的文件。


[1] 链接的在线手册页针对的是不能处理 jar 文件的旧版本。

答案2

举个例子7z

7z a -tgzip foobar.gz foobar
7z e foobar.gz

其中a- 将文件添加到存档,-t{Type}- 设置存档类型(7z、zip、gzip、bzip2 或 tar),e- 从存档中提取文件。更多信息man 7z

答案3

tar,当正确配置时,可以轻松完成所有操作(可能除了解压缩)。

tar --create --gzip --file out.tar.gz in in2 in3
# same thing
tar -czf out.tar.gz in in2 in3

tar --extract --file in.tar
tar -xf in.tar

这也适用于 gzip 和 bzip2 文件。(假设您确实安装了此类程序。)

编辑:哦,是的,忘了解压。这不包括在内,tar可能是因为专利原因或类似原因。只需使用unzip应用程序来提取那些:

unzip in.zip

相关内容