我正在努力解决以下命令: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)