2015-03-03 201 views
1

Linux新手解壓縮.gz文件作爲目錄

已將gzip文件夾作爲abc.gz.現在,當我嘗試使用gunzip命令時,文件不會作爲文件夾,而是輸出文件變爲abc。有人能讓我知道命令將abc.gz解壓縮爲一個文件夾。

感謝

+2

gunzip解將解壓:

tar -c "folder" | gzip -c > "file.tar.gz" 

或者,tar再次用更短的方式做到這一點上來一個zip文件的內容。如果內容是一個文件夾,那麼輸出將是一個文件夾。如果內容是一個文件,那麼它的內容將是一個文件。 – Vahid 2015-03-03 11:06:18

+1

你試過了哪個命令?請在問題中正確提及! – 2015-03-03 11:06:23

+0

@shekhar $ gunzip abc.gz是命令。但它不是作爲文件夾來的。 – santh 2015-03-03 11:20:11

回答

1

gunzip用作唯一的解壓縮算法。

因此gunzip只會解壓縮文件,然後您需要例如到tar xvf file.tar

tarz選項只是一個簡單的快捷方式,在解壓文件的同時使用gzip進行解壓縮。

+0

我可以聽到至少是什麼原因downvoting? – deimus 2015-03-03 11:23:13

2

gzip壓縮一個單一的文件,並不保存原文件名(你可以例如壓縮未有一個名字你抓住一次網絡流)進入該文件。如果您需要壓縮多個文件,則需要使用tarball(將文件集合打包到單個文件中,tarball也會存儲文件的名稱)。

當你閱讀的gzipman gzip)的說明書,你可以看到,您只需使用

gzip -d < "file.gz" > "realfile.dat" 

解壓縮存儲在「file.gz」的文件並將其保存爲「realfile.dat」。

現在,如果您有壓縮多個文件,你需要這樣做使用的是早期稱爲壓縮包。也許你放棄了延期。在這種情況下,你可以先解壓縮.gz文件,然後使用tar使用,擴展它:

gzip -d < "file.tar.gz" | tar -x 

這裏tarstdin讀取(由gzip提供的數據,並將其擴展)。由於人們對tar使用gzip了很多次,tar使它更方便使用:

tar -xzf "file.tar.gz" 

其中z意味着你要在其上運行gzip,並f意味着你從一個文件而不是stdin讀取。

爲了創建這樣的存檔,您再次首先需要使用tar:

tar -czf "file.tar.gz" "folder" 
+0

現在我嘗試了下面的建議,創建了一個新文件夾作爲test1,並嘗試使用$ gzip -rc test1> test1.gz進行壓縮 - >然後使用命令$ gunzip test.gz,然後嘗試執行命令$ gzip - d <「test1.tar.gz」| tar -x - errors -bash:test1.tar.gz:沒有這樣的文件或目錄 tar:這看起來不像tar檔案 tar:由於以前的錯誤而退出失敗狀態。你可以請指導我現在應該怎麼做 – santh 2015-03-03 11:39:59

+0

顯然這不起作用,因爲你命名了你的文件'test1.gz'。你知道IO重定向如何工作('<' and '>')嗎? – 2015-03-03 11:45:15

+0

你最好不要使用'gzip -r',它將文件連接在一起。你應該使用'tar -c test1 | gzip -c>「test1.tar.gz」' – 2015-03-03 11:49:26