http://blog.csdn.net/liuyuze/article/details/2865118 Linux下有很多壓縮工具,7z是已知最大壓縮比的工具,它的使用比較復(fù)雜,以下我記下的一些技巧
壓縮命令(結(jié)合tar命令): tar cf - /home/test | 7z a -si test.tar.7z
上面命令將 /home/test 文件夾壓縮為 test.tar.7z 文件
解壓命令(結(jié)合tar命令) : 7z x -so test.tar.7z | tar xf - /home/alex
這個(gè)命令將test.tar.7z 的內(nèi)容解壓到 /home/alex目錄下
根據(jù)不同需要,還可以設(shè)置不同壓縮比 ,這個(gè)命令特別適合做RAMDISK時(shí)候使用,大大節(jié)省寶貴的空間,希望對(duì)各位有幫助!
下面是壓縮參數(shù)設(shè)置,引用地址:http://anywolfs.com/liuhui/7-zip/cmdline/switches/method.htm
原文如下
-m (設(shè)置壓縮算法) 選項(xiàng)
指定壓縮算法。
語法
-m<method_parameters>
此選項(xiàng)的格式依壓縮檔案的類型而定。
Zip
- x=[0 | 5 | 9 ]
-
設(shè)置壓縮等級(jí)
| 壓縮等級(jí) |
說明 |
| 0 |
不壓縮。 |
| 5 |
默認(rèn)的壓縮等級(jí)。 |
| 9 |
最大壓縮等級(jí)。壓縮后的文件會(huì)更小。但是在壓縮的時(shí)候會(huì)比較慢而且需要較多的物理內(nèi)存。 |
- fb={NumFastBytes}
-
設(shè)置 Deflate 編碼器的單詞大小。您可以在 3 到 255 范圍之內(nèi)更改。在 Deflate 算法下,它的默認(rèn)值是 32;在 Deflate 64 算法下,它的默認(rèn)值是 64。如果要壓縮的多個(gè)文件中,有很多排列相同的字節(jié),比如說內(nèi)容及格式極為相同的兩個(gè)純文本文檔,那么在壓縮的時(shí)候如果有較大的單詞大小,將會(huì)在一定程度上提高壓縮比。所以,通常情況下,其數(shù)量越大,壓縮后的文件就會(huì)越小。但是在壓縮和解壓縮的時(shí)候會(huì)比較慢而且需要較多的物理內(nèi)存。
- pass={NumPasses}
-
設(shè)置 Deflate 編碼器的傳送大小。您可以在 1 到 4 范圍之內(nèi)更改。在 Deflate 算法下,它的默認(rèn)值是 1;在 Deflate 64 算法下,它的默認(rèn)值是 3。此項(xiàng)可略微提升壓縮比,但并不明顯。
GZip
除了 GZip 不支持“儲(chǔ)存”壓縮算法之外,GZip 和 Zip 一樣使用著相同的參數(shù)。
7z
- x=[0 | 1 | 5 | 7 | 9 ]
-
設(shè)置壓縮等級(jí)
| 壓縮等級(jí) |
說明 |
| 0 |
不壓縮. |
| 1 |
快速壓縮:LZMA 快速算法、32KB 字典大小、HC3 Match finder、BCJ 過濾器。 |
| 5 |
正常壓縮:LZMA 標(biāo)準(zhǔn)算法、2 MB 字典大小、BT4 Match finder、單詞大小為 32、BCJ 過濾器。 |
| 7 |
最大壓縮:LZMA 最大算法、8 MB 字典大小、BT4 Match finder、單詞大小為 64、BCJ 過濾器。 |
| 9 |
極限壓縮:LZMA 最大算法、32 MB 字典大小、BT4b Match finder、單詞大小為 64、BCJ2 過濾器。 |
- s=[off | on | [e] [{N}f] [{N}b | {N}k | {N}m | {N}g)]
-
開啟或關(guān)閉固實(shí)模式。此選項(xiàng)的默認(rèn)值是 s=on。開啟或關(guān)閉固實(shí)壓縮檔案模式。在創(chuàng)建固實(shí)壓縮檔案模式中,它把壓縮檔案中的所有文件都當(dāng)成一個(gè)連續(xù)數(shù)據(jù)流來看待。通常情況下,固實(shí)壓縮可增加壓縮比,特別是在添加大量小文件的時(shí)候。
| e |
為每一種文件擴(kuò)展名使用單獨(dú)的固實(shí)數(shù)據(jù)流 |
| {N}f |
設(shè)置在一個(gè)固實(shí)數(shù)據(jù)流種文件的個(gè)數(shù) |
| {N}b | {N}k | {N}m | {N}g |
設(shè)置固實(shí)數(shù)據(jù)流的大小(字節(jié)) |
不同的壓縮等級(jí)對(duì)固實(shí)數(shù)據(jù)流大小的限制:
| 壓縮等級(jí) |
大小 |
| 儲(chǔ)存 |
0 B |
| 快速 |
16 MB |
| 正常 |
256 MB |
| 最大 |
1 GB |
| 極限 |
4 GB |
對(duì)固實(shí)數(shù)據(jù)流大小的限制雖然能應(yīng)響到壓縮比,但是它還是有相當(dāng)多的優(yōu)勢(shì):
- 萬一壓縮檔案損壞,并不會(huì)丟失所有數(shù)據(jù)。
- 減少了文件的釋放時(shí)間。
在當(dāng)前的版本中,您只能更新在壓縮時(shí)未選擇“創(chuàng)建固實(shí)壓縮檔案”的壓縮檔案。也就是說當(dāng)前版本不支持固實(shí)壓縮檔案的更新。
示例:
-s=100f10m
設(shè)置固實(shí)模式使每個(gè)固實(shí)數(shù)據(jù)流種最多 100 文件,并且最大 10 MB 。
- f=[off | on]
-
開啟或關(guān)閉可執(zhí)行文件壓縮過濾器:dll、exe、ocx、sfx、sys。它用于 BCJ2 過濾器(使用極限壓縮)及 BCJ 過濾器中。此選項(xiàng)的默認(rèn)值是 f=on.
- hc=[off | on]
-
開啟或關(guān)閉檔案文件頭壓縮。此選項(xiàng)的默認(rèn)值是 hc=on。如果開啟檔案文件頭壓縮,一部分檔案的文件頭將使用 LZMA 算法進(jìn)行壓縮。
- hcf=[off | on]
-
開啟或關(guān)閉檔案文件頭完全壓縮。此選項(xiàng)的默認(rèn)值是 hcf=on。如果開啟檔案文件頭完全壓縮,那么此壓縮檔案只有 7-Zip 2.30 beta 25 及更高的版本才能支持。
- he=[off | on]
-
開啟或關(guān)閉檔案文件頭加密。此選項(xiàng)的默認(rèn)值是 he=off。
- {N}
-
設(shè)置算法的順序。它也可以用算法關(guān)聯(lián)參數(shù)。最小值為 0。含有從號(hào)的算法將被首先使用。
- b{C1}[s{S1}]:{C2}[s{S2}]
-
將輸出流 S1 及編碼器 C2 中的輸入流 S2 與編碼器 C1 綁定。如果未指定流的大小,那么大小將為 0。
通常情況下,編碼器有一個(gè)輸入流及一個(gè)輸出流。而在 7z 中,一些編碼器有多個(gè)輸入及輸出流。
舉個(gè)例子,BCJ2 編碼器有有關(guān)輸入流及四個(gè)輸出流。
- mt=[off | on]
-
開啟或關(guān)閉多線程壓縮模式。在多線程支持模式中,7-Zip 將使用兩個(gè)線程來進(jìn)行壓縮。這樣的話,對(duì)于多處理器系統(tǒng),那么壓縮速度將提升 70-80%。對(duì)于 Pentium 4 超線程處理器,壓縮速度將提升 25% 左右。但解壓縮時(shí)只使用單獨(dú)線程。注意!此選項(xiàng)僅對(duì) LZMA 壓縮算法有效。
- {N}={MethodID}[:param1][:param2] ... [:paramN]
-
設(shè)置壓縮算法。在 7z 格式中,您可以使用許多壓縮算法。此選項(xiàng)的默認(rèn)算法是 LZMA。
此參數(shù)必須是下列格式中的任意一種:
- {ParamName}={ParamValue}。
- {ParamName}{ParamValue},{ParamValue} 是一個(gè)數(shù)值,并且 {ParamName} 中不包含數(shù)字。
支持的壓縮算法:
| MethodID |
說明 |
| LZMA |
基于 LZ 之上的壓縮算法。 |
| PPMd |
基于 Dmitry Shkarin 之上的算法 PPMdH 并加以優(yōu)化。通常能對(duì)純文本提供高壓縮比及較快的解壓縮速度。 |
| BZip2 |
基于 BWT 的標(biāo)準(zhǔn)壓縮算法。通常能對(duì)純文本提供較高壓縮比及相當(dāng)不錯(cuò)的解壓縮速度。 |
| Deflate |
ZIP 及 GZip 格式的標(biāo)準(zhǔn)壓縮算法。沒有很高的壓縮比。但是它擁有十分快的壓縮及解壓縮速度。Deflate 壓縮算法只支持 32 KB 字典大小。 |
| BCJ |
(CALL、JUMP)32 位 x86 可執(zhí)行文件轉(zhuǎn)換器。 |
| BCJ2 |
(CALL、JUMP、JCC)32 位 x86 可執(zhí)行文件轉(zhuǎn)換器(第二版)。 |
| Copy |
不壓縮。 |
LZMA
LZMA 是基于 Lempel-Ziv(由以色列數(shù)學(xué)家 A.Lempel 和 J.Ziv 共同開發(fā)的壓縮算法)之上的壓縮算法。它能提供相當(dāng)快的解壓縮速度(約比壓縮快 10 到 20 倍)。對(duì)內(nèi)存的需求也不盡相同(詳細(xì)信息請(qǐng)參見 d={Size}[b|k|m] 選項(xiàng))。
- a=[0|1|2]
-
設(shè)置壓縮等級(jí):0=快速、1=正常、2=最大壓縮。默認(rèn)值為 1。
- d={Size}[b|k|m]
-
設(shè)置 LZMA 壓縮算法的字典大小。您可以使用字節(jié)、KB 或 MB 來指定此項(xiàng)。字典大小的最大值為 256 MB=2^28 字節(jié)。正常模式下,LZMA 的字典大小默認(rèn)值為 21(2 MB) ;最大模式(-mx=7)下為 23(8 MB);極限模式(-mx=9)下為 25(32 MB)。如果您未指定 [b|k|m] 項(xiàng),字典大小將自動(dòng)根據(jù)壓縮等級(jí)來選擇相應(yīng)的單位。對(duì)于 LZMA 算法的文件解壓縮,若壓縮文件的字典大小為 64 MB,則解壓縮時(shí)就需要 64 兆可用的物理內(nèi)存。
- mf={MF_ID}
-
設(shè)置 LZMA 壓縮算法的匹配器。默認(rèn)算法為 bt4。bt* 類的算法所需的內(nèi)存比 pat* 類所需的內(nèi)存少。通常情況下 bt4 的工作速度比 pat* 快得多,然而部分文件格式在 pat* 算法中可以工作得很快。hc* 類算法并沒有很好得壓縮比,但是它與快速模式(a=0)結(jié)合使用通常會(huì)工作得相當(dāng)快。所需內(nèi)存依字典大小而定(參見下表)。
| MF_ID |
所需內(nèi)存 |
說明 |
| bt2 |
d×9.5 + 1 MB |
二進(jìn)制樹;2 散列字節(jié)。 |
| bt3 |
d×9.5 + 65 MB |
二進(jìn)制樹;2-3(完整) 散列字節(jié)。 |
| bt4 |
d×9.5 + 6 MB |
二進(jìn)制樹;2-3-4 散列字節(jié)。 |
| bt4b |
d×9.5 + 34 MB |
二進(jìn)制樹;2-3-4(大) 散列字節(jié)。 |
| pat2r |
d×26 + 1 MB |
Patricia 樹;2-位節(jié)點(diǎn);可移動(dòng)。 |
| pat2 |
d×38 + 1 MB |
Patricia 樹;2-位節(jié)點(diǎn)。 |
| pat2h |
d×38 + 77 MB |
Patricia 樹;2-位節(jié)點(diǎn);2-3 散列字節(jié)。 |
| pat3h |
d×62 + 85 MB |
Patricia 樹;3-位節(jié)點(diǎn);2-3 散列字節(jié)。 |
| pat4h |
d×110 + 101 MB |
Patricia 樹;4-位節(jié)點(diǎn);2-3 散列字節(jié)。 |
| hc3 |
d×5.5 + 1 MB |
Hash Chain;-3 散列字節(jié)。 |
| hc4 |
d×5.5 + 6 MB |
Hash Chain;2-3-4 散列字節(jié)。 |
注意:操作系統(tǒng)同樣需要一部分物理內(nèi)存來維持系統(tǒng)得正常運(yùn)行。所以至少要剩余 32 可用物理內(nèi)存。
- fb={N}
-
設(shè)置 LZMA 壓縮算法的緊縮字節(jié)。有效范圍從 5 到 255。正常模式下默認(rèn)值為 32;最大模式下為 64 。通常情況下,較大的數(shù)值能略微提高壓縮比。但同時(shí)也會(huì)降低壓縮速度。
- lc={N}
-
設(shè)置 Literal Context 位數(shù)。有效范圍從 0 到 8。默認(rèn)值為 3。有時(shí)壓縮檔案中含有大文件會(huì)自動(dòng)使用 lc=4。
- lp={N}
-
設(shè)置 Literal Pos 位數(shù)。有效范圍從 0 到 4。默認(rèn)值為 0。
- pb={N}
-
設(shè)置 Pos 位數(shù)。有效范圍從 0 到 4。默認(rèn)值為 2。
PPMd
PPMd 是 PPM-based 壓縮算法的簡(jiǎn)寫。它基于 Dmitry Shkarin 的算法 PPMdH 并對(duì)其源代碼加以優(yōu)化。PPMd 通常能對(duì)純文本提供高壓縮比及較快的解壓縮速度。壓縮和解壓縮的速度完全相同,所需的內(nèi)存大小也一樣。
- mem={Size}[b|k|m]
-
設(shè)置 PPMd 算法使用的內(nèi)存多少。您可以使用字節(jié)、KB 或 MB 來指定此項(xiàng)。最大值為 2 GB=2^31 字節(jié);默認(rèn)值為 24(16MB)。如果您未指定 [b|k|m] 項(xiàng),字典大小將自動(dòng)根據(jù)壓縮等級(jí)來選擇相應(yīng)的單位。PPMd 在壓縮和解壓縮時(shí)所需的內(nèi)存大小是相同的。
- o={Size}
-
設(shè)置 PPMd 算法壓縮命令。其大小必須在 [2,32] 范圍內(nèi)。默認(rèn)值為 6。
BCJ2
BCJ2 是 32 位 x86 可執(zhí)行文件轉(zhuǎn)換器(第二版)。它通過轉(zhuǎn)換分支指令來對(duì)文件進(jìn)行進(jìn)一步壓縮。
BCJ2 編碼器有一個(gè)輸入流和四個(gè)輸出流:
- s0:干流。提供進(jìn)一步的壓縮。
- s1:CALL 值轉(zhuǎn)換流。提供進(jìn)一步的壓縮。
- s2:JUMP 值轉(zhuǎn)換流。提供進(jìn)一步的壓縮。
- s3:服務(wù)流。它已經(jīng)備壓縮過。
如果使用 LZMA 壓縮算法,s1 及 s2 流的字典大小將會(huì)比 s0 流的小(512 KB)。
示例
7z a -tzip archive.zip *.jpg -m0
不壓縮而直接將 *.jpg 文件添加到 archive.zip 檔案。
7z a -t7z archive.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt
添加 *.exe 及 *.dll 文件到固實(shí)壓縮檔案 archive.7z。使用 LZMA 壓縮算法、2 MB 字典大小及 BCJ 轉(zhuǎn)換器。壓縮將開啟多線程優(yōu)化(如果可用)。
7z a -t7z archive.7z *.exe *.dll -m0=BCJ2 -m1=LZMA:d23 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3
添加 *.exe 及 *.dll 文件到壓縮檔案 archive.7z。使用 LZMA 壓縮算法、BCJ2 轉(zhuǎn)換器、為主輸出流(s0)使用 8 MB 字典大小、LZMA 算法為 BCJ2 轉(zhuǎn)換器的 s1 及 s2 輸出流使用 512 KB 字典大小。
7z a -t7z archive.7z *.txt -m0=PPMd
添加 *.txt 文件到壓縮檔案 archive.7z。 使用 PPMd 壓縮算法。
可以和此選項(xiàng)結(jié)合使用的命令
a (添加), d (刪除), u (更新)
其它
選項(xiàng): -t (設(shè)置壓縮檔案格式)