gzip -d 引入了错误的 ASCII 字符

gzip -d 引入了错误的 ASCII 字符

我正在努力解决以下命令:gzip -d /path/to/compressed.sql.gz

我总是在同一个 Docker 镜像的容器内运行它。它在我的笔记本电脑和我们的生产服务器上运行良好。然而,在新电脑上总是生成一个无效的未压缩文件,其中包含奇怪的 ASCII 字符(例如,它引入了!原始文件中不存在的字符)。

以下是重现错误的步骤:

wget http://static.sing-group.org/EvoPPI/db/sql/2022.04/evoppi.sql.gz -O test.sql.gz
gzip -t test.sql.gz
zgrep -a '!' test.sql.gz
gzip -c -d test.sql.gz > test.sql
grep '!' test.sql

它在我的计算机上使用wget 1.19.4和运行良好gzip 1.6(这些版本也可以在的基本 Docker 映像中找到ubuntu:18.04)。该gzip -t命令未发现任何错误,解压缩运行时没有错误,最后grep未发现任何!,这意味着该文件没有问题,因为它不包含该字符。

wget 1.20.3但是,在另一台装有和的计算机上却无法运行gzip 1.10。即使gzip -t提示文件正常且gzip -d没有出现任何错误,最终结果grep总是显示奇怪的 ASCII 字符,并且!原始文件中不存在 。

对我来说更奇怪的是,在这些计算机中通过 Docker 映像运行命令时也会失败ubuntu:18.04(即使用与我的计算机相同版本的 wget 和 gzip)。

提前致谢!!

Bib 建议使用 sha256

计算机 1(我的笔记本电脑):

f7348471a3900e7e2a0dc521be4d25c1adcfce851b545318a52fa034e908826d  test.sql.gz
83456ec6f3b4ee0344a87bcd711ab1dca8ca8dffd7135958f7cbb311a3186649  test.sql

计算机2:

f7348471a3900e7e2a0dc521be4d25c1adcfce851b545318a52fa034e908826d  test.sql.gz (matches Computer 1)
9c10d434a3c7b28f5f385bf0a333acce9ea918bf38c47aa5685bff2153fa0386  test.sql (does not match Computer 1)

相关内容