2012-12-15 55 views
0

我有一個只消耗未壓縮文件的程序。我有幾個.gz文件,我的目標是將它們連接到該程序。如果我有一個tar.gz文件,我可以使用archivemont命令掛載tar.gz存檔。如何在不解壓縮的情況下將gz文件合併到tar.gz中?

我知道我可以連接的GZ文件:

cat a.gz b.gz > c.gz 

但也沒辦法,我是知道的,安裝一個GZ文件。我沒有足夠的磁盤空間來解壓縮所有文件和tar命令不接受標準輸入的輸入,所以我不能做到這一點:

zcat *.gz | tar - | gzip > file.tar.gz 

回答

0

目前尚不清楚你所需要的操作,在執行tar.gz存檔。但從我可以看出,tar.gz不是這個應用程序的格式。整個歸檔流由gzip壓縮,因此無法在不必重新壓縮後面的所有文件的情況下拔出或更改文件。可以專門準備tar.gz流以保持每個文件的壓縮獨立,但是您最好還是使用.zip格式,該格式更適合隨機訪問和處理歸檔中的單個文件。

爲了解決您的一條評論,tar實際上可以接受stdin作爲輸入。有關示例,請參見pipe tar extract into tar create,其中GNU tar和BSD tar(具有不同的語法)可以從stdin取得tar文件,刪除條目並將新的tar文件寫入stdout。

相關問題