不推荐使用 GNU GZIP 环境变量,如何通过 tar 控制 ZLIB 压缩?
With GNU GZIP environment variable deprecated, how to control ZLIB compression via tar?
目前我有一个使用 GZIP
环境变量设置压缩的脚本。
使用 gzip 1.8 我收到警告:
warning: GZIP environment variable is deprecated; use an alias or script
如何调用 tar 来设置压缩级别?
当前命令:
GZIP=-9 tar -zcf
...要压缩的文件...
取决于 OS 以及随附的 tar
版本。如果是 BSD and/or macOS,你可以:
tar --options gzip:compression-level=9 -czf foo.tar.gz foo.txt
否则,您可以自己掌握压缩阶段:
tar -cf - foo.txt | gzip -9 > foo.tar.gz
您可以使用以下方式指定压缩程序:-I
/ --use-compress-program=COMMAND
。
所以原来的命令:
GZIP=-9 tar -zcf
...要压缩的文件...
变为:
tar -I 'gzip -9' -cf
...要压缩的文件...
一些旧版本的 tar 确实支持 -I
选项来指定压缩命令,但是 tar 的旧版本不支持压缩命令的附加参数。所以旧版本在使用 -I 'gzip -9'
.
之类的东西时会中断
一个更便携、更可靠的解决方案是使用另一个答案中提到的管道自己处理压缩。
pigz支持环境变量。它与 gzip 兼容,因此您可以使用名称 gzip.
安装它
目前我有一个使用 GZIP
环境变量设置压缩的脚本。
使用 gzip 1.8 我收到警告:
warning: GZIP environment variable is deprecated; use an alias or script
如何调用 tar 来设置压缩级别?
当前命令:
GZIP=-9 tar -zcf
...要压缩的文件...
取决于 OS 以及随附的 tar
版本。如果是 BSD and/or macOS,你可以:
tar --options gzip:compression-level=9 -czf foo.tar.gz foo.txt
否则,您可以自己掌握压缩阶段:
tar -cf - foo.txt | gzip -9 > foo.tar.gz
您可以使用以下方式指定压缩程序:-I
/ --use-compress-program=COMMAND
。
所以原来的命令:
GZIP=-9 tar -zcf
...要压缩的文件...
变为:
tar -I 'gzip -9' -cf
...要压缩的文件...
一些旧版本的 tar 确实支持 -I
选项来指定压缩命令,但是 tar 的旧版本不支持压缩命令的附加参数。所以旧版本在使用 -I 'gzip -9'
.
一个更便携、更可靠的解决方案是使用另一个答案中提到的管道自己处理压缩。
pigz支持环境变量。它与 gzip 兼容,因此您可以使用名称 gzip.
安装它