tar: Archive is compressed. Use -z option
尝试构建我的 docker 映像时出现此错误:
RUN wget https://github.com/wal-g/wal-g/releases/download/v2.0.1/wal-g-pg-ubuntu-20.04-amd64.tar.gz -O - | \
tar -xvf - -O > "${APP}/bin/wal-g"
但是为什么-z
在提取模式下忽略选项时会发生此错误?
-z, --gunzip, --gzip
(仅限 c 模式)使用 gzip(1) 压缩生成的存档。在提取或列表模式下,此
选项将被忽略。请注意,此 tar 实现在读取档案时会自动识别 gzip 压缩。
当我添加-z
选项时,我收到另一个错误:
Cannot write to ‘-’ (Success).
命令应该是:
需要
z
添加到不在-f
和之间的某个位置-
。该选项-f
需要一个参数,在本例中为-
。以下是tar 源代码
-f
中aka--file
选项的定义方式:您可以从代码中看到
-f
需要后跟文件名,在本例中是特殊名称-
,表示stdout(3)。看来 tar 正在使用GNU argp来解析 CLI 参数而不是getopt(3)。