Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

tar.gz 解壓報錯「not in gzip format」?兩招精準定位與解決

編輯:關於 Linux

執行 tar -zxvf file.tar.gz 時出現 gzip: stdin: not in gzip format,實則是「文件實際格式與副名不符」的經典問題。本文從原理到實戰,教你 10 秒判斷真實格式並正確解壓。

tar 解壓錯誤示意圖

錯誤本質:副名欺騙

.tar.gz 暗示「tar 打包 + gzip 壓縮」,但實際可能是:

  • 純 .tar 未壓縮
  • .tar.xz / .tar.bz2 / .tar.zst 其他壓縮算法
  • 甚至是 .zip、.7z 偽裝

黃金法則:先 file 鑑定,再對症下藥

file suspicious.tar.gz
# 輸出示例:
# suspicious.tar.gz: POSIX tar archive          → 純 tar,無壓縮
# suspicious.tar.gz: XZ compressed data         → 實為 .tar.xz
# suspicious.tar.gz: gzip compressed data       → 真 .tar.gz

對應解壓命令表

file 輸出關鍵字實際格式正確解壓命令
POSIX tar archive.tartar -xvf file.tar.gz(去掉 -z)
gzip compressed data.tar.gztar -zxvf file.tar.gz
bzip2 compressed data.tar.bz2tar -jxvf file.tar.gz
XZ compressed data.tar.xztar -Jxvf file.tar.gz
Zstandard.tar.zsttar --zstd -xvf file.tar.gz
Zip archive.zipunzip file.tar.gz

通殺技巧:讓 tar 自動檢測

現代 tar (GNU tar 1.15+) 支援 -a / --auto-compress 根據文件魔數自動選擇解壓算法:

tar -axvf file.tar.gz  # 一鍵解決所有上述格式,強烈推薦養成習慣

方案二:重命名法(不推薦,治標不治本)

mv file.tar.gz file.tar   # 去掉 .gz 後綴
tar -xvf file.tar         # 按純 tar 解壓
缺點: 依賴人工判斷,遇到 .xz/.bz2 仍會失敗;不如 file + tar -a 組合科學可靠。

進階:管道流式解壓(節省磁碟空間)

# 遠端下載並直接解壓,不落地壓縮包
curl -sL https://example.com/data.tar.xz | tar -Jxvf -

# 解壓單個文件到標準輸出
tar -axvf archive.tar.gz --to-stdout path/to/file.txt

總結

拒絕盲目加參數,拥抱 file 鑑定 + tar -a 自動化。 這不僅能解決 .tar.gz 偽裝問題,更能統一處理 .tar.xz、.tar.zst 等現代壓縮格式,是 Linux 運維必備的肌肉記憶。

Copyright © Windows教程網 All Rights Reserved