解壓.tar.gz出錯gzip: stdin: not in gzip format tar: /Child returned status 1 tar: Error is not recoverable: exiting now


最近研究shell編程,需要下載解壓一些.tar.gz的文件,但經常遇到解壓失敗的情況:

[root@xxxxxxx ~]# tar -jxvf tcl8.4.16-src.tar.gz 
bzip2: (stdin) is not a bzip2 file.
tar: Child returned status 2
tar: Error is not recoverable: exiting now

今天仔細研究了一下,如何解決這個問題:

1. 先查看文件真正的屬性是什么?

[root@xxxxx ~]# tar -zxvf tcl8.4.16-src.tar.gz 

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
[root@xxxxxx ~]# file tcl8.4.16-src.tar.gz 
tcl8.4.16-src.tar.gz: HTML document text

我賽,竟然是HTML,這次終於知道是為什么了。

理由如下:

文件的下載鏈接不是直接指向文件,而是先指向一個頁面,在這個頁面里才是真的下載鏈接,所以在前一個頁面上直接保存文件,實際上保存的是一個頁面。

假如屬性是bz文件,就用bz文件的解壓方式。

補充一下file命令:

通過file指令,我們得以辨識該文件的類型。

參  數:
 -b  列出辨識結果時,不顯示文件名稱。
 -c  詳細顯示指令執行過程,便於排錯或分析程序執行的情形。
 -f<名稱文件>  指定名稱文件,其內容有一個或多個文件名稱呢感,讓file依序辨識這些文件,格式為每列一個文件名稱。
 -L  直接顯示符號連接所指向的文件的類別。
 -m<魔法數字文件>  指定魔法數字文件。
 -v  顯示版本信息。
 -z  嘗試去解讀壓縮文件的內容。

 2.重新獲取tar包路徑,先用瀏覽器打開,從彈出來的save 對話框里獲取下載鏈接

這次就完美了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM