題 任何批量壓縮多個文件的方法?


有誰知道GZIP壓縮多個文件怎麼樣?
我在文件夾中有很多文件,我需要單獨壓縮它們。

實際上,我已經找到了辦法。 GZIP命令行二進製文件完成了這項工作。

我用過 gzip -r dir

謝謝你的努力。


4
2018-02-10 20:13


起源


哪個操作系統? - Karolos
Win7,對不起:) - avetarman
@avetarman,請添加你所做的答案,並接受它,而不是僅僅回答問題 - soandos


答案:


只需單獨使用gzip。

默認情況下,gzip將傳遞給它的任何文件並壓縮它並添加.gz擴展名。即

gzip dir/* -r

會在dir / *(和子目錄)中gzip每個文件。


2
2018-02-10 21:31





在powershell中嘗試以下內容(在轉到正確的目錄後):

$files = get-childitem
foreach ($file in $files) {gzip $file}

這將遍歷目錄中的所有文件,並壓縮所有這些文件。

編輯: 如果要在目錄樹中(即在文件夾及其所有子文件夾中)執行所有文件,只需更改即可 $files = get-childitem  至 $files = get-childitem -recurse 


4
2018-02-10 20:32



這可以擴展到任何支持CLI的壓縮實用程序,包括7zip。 - music2myear
對。這種方式很好,適應性強。 (在一個不相關的註釋中,當你編輯鏈接時,首先檢查它們,因為我在你的一些編輯中看到了一些錯過的括號。沒什麼大不了的,但我認為你應該知道) - soandos
對於抬頭而言。 - music2myear


我會用一個 for 環。您是否擔心可執行文件會被多次加載?與壓縮所用的時間相比,這應該不會太多。


3
2018-02-10 20:33



也許提供這樣做的代碼? - soandos


GZIP可以用來壓縮單個文件...但大多數時候你會看到最小的磁盤空間節省。佔用1個扇區的文件將佔用1個完整扇區的磁盤空間,即使該文件小於扇區大小也是如此。 (即扇區大小= 16kb,文件為8kb ......'壓縮'為5kb ...仍佔用16kb的“磁盤空間”)當你將所有文件組合成一個文件時,gzip的功能更加明顯單個文件(通常使用tar)然後壓縮單個歸檔文件。 (結合起來,“存檔”可以獲取所有文件,並將它們組合成磁盤上的1個單個文件...這將減少扇區之間的“死空間”)

例如:

tar -czf compressed_archive.tgz folder/*

柏油 -c 創建檔案, z 使用gzip壓縮,和 f 將結果寫入名為compressed_archive.tgz的文件。您也可以通過簡單地切換來切換到使用bz2壓縮(在許多情況下效果更好) z 切換到 j

如果您想從存檔中提取文件,則可以執行相反的操作

tar -zxf compressed_archive.tgz

這將 x 提取文件 z gzip壓縮, f 來自名為compressed_archive.tgz的歸檔文件。


2
2018-02-10 20:46



謝謝。我不需要存檔。我一直在尋找遞歸壓縮文件。這是一個站點地圖。再次感謝。 - avetarman


使用 的7-Zip 為了更好的壓縮


1
2018-02-10 20:26



謝謝,但它只生成一個壓縮存檔。它不會單獨處理文件。 - avetarman
濕婆不是問題的答案。這是對事實的陳述。一個不相干的事實 - Lyndon White


我發現我必須調整soandos powershell方法以使其按預期工作(我會添加評論,但不允許)。

$files = get-childitem -recurse | % { $_.FullName }
foreach ($file in $files) {gzip $file}

1
2017-08-26 15:42