一、解壓縮命令簡介
tar命令
-c: 建立壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。
-z:有gzip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標准輸出
下面的參數-f是必須的
-f: 使用檔案名字,切記,這個參數是最后一個參數,后面只能接檔案名。
# tar -cf all.tar *.jpg這條命令是將所有。jpg的文件打成一個名為all.tar的包。-c是表示產生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif這條命令是將所有。gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif這條命令是更新原來tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar這條命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar這條命令是解出all.tar包中所有文件,-x是解開的意思
二、壓縮命令使用
tar –cvf jpg.tar *.jpg //將目錄里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg // 將目錄里所有jpg文件打包成jpg.tar后,並且將其用gzip壓縮,生成一個gzip壓縮過的包,命名為jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //將目錄里所有jpg文件打包成jpg.tar后,並且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名為jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //將目錄里所有jpg文件打包成jpg.tar后,並且將其用compress壓縮,生成一個umcompress壓縮過的包,命名為jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的壓縮,需要先下載rar for linux
zip jpg.zip *.jpg //zip格式的壓縮,需要先下載zip for linux
三、解壓命令使用
tar –xvf file.tar //解壓 tar包
tar -xzvf file.tar.gz //解壓tar.gz
tar -xjvf file.tar.bz2<span> //</span>解壓 tar.bz2
tar –xZvf file.tar.Z<span> //</span>解壓tar.Z
unrar e file.rar //解壓rar
unzip file.zip //解壓zip
四、總結
1、*.tar 用 tar –xvf 解壓
2、*.gz 用 gzip -d或者gunzip 解壓
3、*.tar.gz和*.tgz 用 tar –xzf 解壓
4、*.bz2 用 bzip2 -d或者用bunzip2 解壓
5、*.tar.bz2用tar –xjf 解壓
6、*.Z 用 uncompress 解壓
7、*.tar.Z 用tar –xZf 解壓
8、*.rar 用 unrar e解壓
9、*.zip 用 unzip 解壓
rar for linux :
命令格式: rar < command> -< swith 1> -< swith N> < archive> < files...>
< @listfiles...> < path_to_extract\>
< Commands>
a 向壓縮包中添加文件
c 添加壓縮注釋
cf 添加文件注釋
cw 向文件中寫壓縮注釋
d 從壓縮包中刪除文件
e 在當前目錄下解壓縮文件
f 刷新壓縮文件中的文件
i[par]=< str> 在壓縮包中查找指定字符串
k 鎖住壓縮包
l[t,b] 列出壓縮包的內容[t(technical)詳細列表,b(bare)簡單列表]
m[f] 向壓縮包里移動內容[f(files only)只移動文件]
p 在標准輸出上打印文件內容
r 修復壓縮包
rc 修復丟失卷
rn 重命名壓縮的文件
rr[N] 添加數據恢復記錄
rv[N] 創建恢復卷
s[name|-] 將壓縮包轉換為自解壓文件,或從自解壓文件轉換為壓縮包
t 測試壓縮文件
u 更新壓縮包中的文件
v[t,b] 列出壓縮包中文件(冗長型)[t(technical)詳細列表,b(bare)簡單列表]
x 以全路徑方式解壓文件
< Switches>
- 停止switches掃描
ad 在目的路徑后添加壓縮文件名
ag[format] 用當前日期生成壓縮文件名
ap< path> 設置壓縮包內部的路徑
as 同步壓縮內容
av 設置授權認證(注冊版功能)
av- 禁用授權認證檢查
c- 禁止內容顯示
cfg- 不讀取設置
cl 將名稱轉換為小寫
cu 將名稱轉換為大寫
df 在壓縮完成后刪除源文件
dh 打開共享文件
ds 對於固實壓縮包,禁用名稱排序
e< attr> 設置文件不包含的屬性
ed 不添加空目錄
en 不設置‘壓縮文件尾標志’塊
ep 在名稱中去掉路徑
ep1 在名稱中去掉基本路徑
ep2 展開全路徑
f 刷新文件
hp[password] 對文件數據和文件頭都進行加密
idp 禁用百分比顯示
ierr 給標准錯誤輸出發送所有信息
ilog[name] 生成錯誤日志文件(注冊版功能)
inul 禁用所有信息
isnd 啟用聲效
k 鎖住壓縮包
kb 保留破損的解壓文件
m< 0..5> 設置壓縮率(0-存儲...3-默認...5-最大)
mc< par> 設置高級壓縮參數
md< size> 以KB顯示大小(64,128,256,512,1024,2048,4096 或者A-G)
ms[ext; ext] 指定存儲的文件類型
o+ 覆蓋已存在文件
o- 不覆蓋已存在文件
ol 將符號鏈接保存為鏈接而不是文件
ow 保存或恢復文件屬主/組
p[password] 設置密碼
p- 不查詢密碼
r 對子目錄內容循環
r0 只對通配符進行子目錄內容循環
rr[N] 添加數據恢復記錄
rv[N] 創建恢復卷
s[< N> ,v[-],e] 創建固實壓縮包
s- 禁用固實壓縮
sfx[name] 創建自解壓壓縮包
t 壓縮后進行解壓測試
ta< date> 處理在< date> (YYYYMMDDHHMMSS格式)日期后修改的文件
tb< date> 處理在< date> (YYYYMMDDHHMMSS格式)日期前修改的文件
tk 保留初始壓縮時間
tl 設置壓縮時間為最新文件的時間
tn< time> 處理在< time> 時間后修改的文件
to< time> 處理在< time> 時間前修改的文件
ts< m,c,a> [N] 保存或恢復文件時間(修改,創建,訪問)
u 更新文件
v 以自動分卷大小分卷壓縮,或列出所有分卷
v< size> [k,b] 以< size> *1000大小分卷壓縮[k-*1024, b-*1]
ver[n] 文件版本控制
vn 使用舊的分卷命名方式
vp 每次分卷前暫停
w< path> 設置工作目錄
x< file> 排除指定文件
x@ 從標准輸入中讀取要排除的文件名
x@< list> 排除列表文件中指定的文件
y 對所有問題均回復yes
z< file> 從文件中讀取壓縮包內容
============================================
查看壓縮包中的文件
$rar l XXX.rar
或者
$rar v XXX.rar
查看壓縮包中的文件(只看有什么文件)
$rar lb XXX.rar
或者
$rar vb XXX.rar
查看壓縮包中的文件(詳細信息)
$rar lt XXX.rar
或者
$rar vt XXX.rar
============================================
把壓縮包的內容解壓到當前目錄
$rar e XXX.rar
把壓縮包的內容解壓到指定目錄,比如/home/yxd/tmp/下面
$rar e XXX.rar /home/yxd/tmp/
把壓縮包解的內容壓到指定目錄,比如/home/yxd/tmp/下面,包含壓縮包中的路徑
$rar x XXX.rar /home/yxd/tmp/
============================================
壓縮指定的一個文件,比如aaa,以默認壓縮率
$rar a XXX.rar aaa
壓縮指定的一個文件,比如aaa,以最大壓縮率
$rar a -m5 XXX.rar aaa
壓縮指定的一個目錄下的所有文件,比如ddd目錄下的所有文件
$rar a XXX.rar ddd/
壓縮指定的一個目錄下的所有文件,比如ddd目錄下的所有文件和所有子目錄
$rar a -r XXX.rar ddd/
壓縮指定的一個目錄下的所有文件,比如ddd目錄下的所有文件和所有子目錄,但是不包含空目錄
$rar a -r -ed XXX.rar ddd/
壓縮指定的一個目錄下的所有文件,比如ddd目錄,連目錄也一起壓縮,包括子目錄
$rar a XXX.rar ddd
============================================
分卷壓縮指定的一個文件,比如aaa,分卷大小為5000B
$rar a -v5 XXX.rar aaa
分卷壓縮指定的一個文件,比如aaa,分卷大小為5k(5*1024B)
$rar a -v5k XXX.rar aaa
分卷壓縮指定的一個文件,比如aaa,分卷大小為5B
$rar a -v5b XXX.rar aaa
zip for linux :
zip
功能說明:壓縮文件。
在壓縮時,不需先打包,打包后再壓縮,壓縮效率反而還更低,默認是-9,即最大效率
zip [options] distination_file source
補充說明:zip是個使用廣泛的壓縮程序,文件經它壓縮后會產生具有".zip"擴展名的壓縮文件。
參 數:
-A 調整可執行的自動解壓縮文件。
-b工作目錄> 指定暫時存放文件的目錄。(不需要)
-c 替每個被壓縮的文件加上注釋。
-d 從壓縮文件內刪除指定的文件。 (utility)
-D 壓縮文件內不建立目錄名稱。
-f 此參數的效果和指定"-u"參數類似,但不僅更新既有文件,如果某些文件原本不存在於壓縮文件內,使用本參數會一並將其加入壓縮文件中。 (utility)
-F 嘗試修復已損壞的壓縮文件。
-g 將文件壓縮后附加在既有的壓縮文件之后,而非另行建立新的壓縮文件。
-h 在線幫助。
-i范本樣式> 只壓縮符合條件的文件。
-j 只保存文件名稱及其內容,而不存放任何目錄名稱。(utility)
-J 刪除壓縮文件前面不必要的數據。
-k 使用MS-DOS兼容格式的文件名稱。
-l 壓縮文件時,把LF字符置換成LF+CR字符。
-ll 壓縮文件時,把LF+CR字符置換成LF字符。
-L 顯示版權信息。
-m 將文件壓縮並加入壓縮文件后,刪除原始文件,即把文件移到壓縮文件中。
-n字尾字符串> 不壓縮具有特定字尾字符串的文件。
-o 以壓縮文件內擁有最新更改時間的文件為准,將壓縮文件的更改時間設成和該文件相同。
-q 不顯示指令執行過程。
-r 遞歸處理,將指定目錄下的所有文件和子目錄一並處理。 (utility)
-S 包含系統和隱藏文件。
-t日期時間> 把壓縮文件的日期設成指定的日期。
-T 檢查備份文件內的每個文件是否正確無誤。
-u 更換較新的文件到壓縮文件內。
-v 顯示指令執行過程或顯示版本信息。
-V 保存VMS操作系統的文件屬性。
-w 在文件名稱里假如版本編號,本參數僅在VMS操作系統下有效。
-x范本樣式> 壓縮時排除符合條件的文件。
-X 不保存額外的文件屬性。
-y 直接保存符號連接,而非該連接所指向的文件,本參數僅在UNIX之類的系統下有效。
-z 替壓縮文件加上注釋。
-$ 保存第一個被壓縮文件所在磁盤的卷冊名稱。
-壓縮效率> 壓縮效率是一個介於1-9的數值。數越大壓縮效率越高(默認為9) (utility)
例如:將目錄/home/zhang/files下的所有文件壓縮,並存儲到當前目錄,包名為files,它會自動在 files后面加上.zip
zip -r9 ~/files /home/zhang/files
參數9表示最大的壓縮率,壓縮結果為files.zip
如果對目錄進行壓縮,就需加參數-r
如果在壓縮文件中,你不想包含原有的目錄,只想其中的文件,就需參數-j
zip -j9 ~/files /home/zhang/files/*
unzip
功能說明:解壓縮zip文件
語 法:unzip [-cflptuvz][-agCjLMnoqsVX][-P 密碼>][.zip文件][文件][-d 目錄>][-x 文件>] 或 unzip [-Z]
補充說明:unzip為.zip壓縮文件的解壓縮程序。
參 數:
-c 將解壓縮的結果顯示到屏幕上,並對字符做適當的轉換。
-f 更新現有的文件。
-l 顯示壓縮文件內所包含的文件。
-p 與-c參數類似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換。
-t 檢查壓縮文件是否正確。
-u 與-f參數類似,但是除了更新現有的文件外,也會將壓縮文件中的其他文件解壓縮到目錄中。
-v 執行時顯示詳細的信息。
-z 僅顯示壓縮文件的備注文字。
-a 對文本文件進行必要的字符轉換。
-b 不要對文本文件進行字符轉換。
-C 壓縮文件中的文件名稱區分大小寫。
-j 不處理壓縮文件中原有的目錄路徑。
-L 將壓縮文件中的全部文件名改為小寫。
-M 將輸出結果送到more程序處理。
-n 解壓縮時不要覆蓋原有的文件。
-o 不必先詢問用戶,unzip執行后覆蓋原有文件。(默認是詢問用戶)
-P密碼> 使用zip的密碼選項。
-q 執行時不顯示任何信息。
-s 將文件名中的空白字符轉換為底線字符。
-V 保留VMS的文件版本信息。
-X 解壓縮時同時回存文件原來的UID/GID。
[.zip文件] 指定.zip壓縮文件。
[文件] 指定要處理.zip壓縮文件中的哪些文件。
-d目錄> 指定文件解壓縮后所要存儲的目錄。(utility)
-x文件> 指定不要處理.zip壓縮文件中的哪些文件。
-Z unzip -Z等於執行zipinfo指令。
例如: 對上面壓縮的文件解壓到當前目錄
unzip files.zip
如果你想將壓縮的文件解壓到當前主目錄下的hat目錄下:
unzip -d ~/hat files.zip
gzip
功能說明:壓縮文件。
如果對一個文件夾進行壓縮時,他會將各個文件分別進行壓縮,目錄仍然存在,不會被壓縮。所以,如果想一個目錄下的所有文件被壓縮成一個壓縮
包的話,就得先打包,再壓縮,而zip就不需要。壓縮文件只能是本地目錄,不能指定保存目錄,除非和tar合用
語 法:gzip [-acdfhlLnNqrtvV][-S 壓縮字尾字符串>][-壓縮效率>][--best/fast][文件...] 或 gzip [-acdfhlLnNqrtvV] [-S 壓縮字尾字符串>][-壓縮效率>][--best/fast][目錄]
補充說明:gzip是個使用廣泛的壓縮程序,文件經它壓縮過后,其名稱后面會多出".gz"的擴展名。它不會對符號鏈接進行壓縮
參 數:
-a或--ascii 使用ASCII文字模式。
-c或--stdout或--to-stdout 把壓縮后的文件輸出到標准輸出設備,不去更動原始文件。
-d或--decompress或----uncompress 解開壓縮文件。
-f或--force 強行壓縮文件。不理會文件名稱或硬連接是否存在以及該文件是否為符號連接。
-h或--help 在線幫助。
-l或--list 列出壓縮文件的相關信息。
-L或--license 顯示版本與版權信息。
-n或--no-name 壓縮文件時,不保存原來的文件名稱及時間戳記。
-N或--name 壓縮文件時,保存原來的文件名稱及時間戳記。 (utility)
-q或--quiet 不顯示警告信息。
-r或--recursive 遞歸處理,將指定目錄下的所有文件及子目錄一並處理。
-S壓縮字尾字符串>或----suffix壓縮字尾字符串> 更改壓縮字尾字符串。
-t或--test 測試壓縮文件是否正確無誤。
-v或--verbose 顯示指令執行過程。
-V或--version 顯示版本信息。
-壓縮效率> 壓縮效率是一個介於1-9的數值,預設值為"6",指定愈大的數值,壓縮效率就會愈高。 (utility)
--best 此參數的效果和指定"-9"參數相同。
--fast 此參數的效果和指定"-1"參數相同。
例如:將目錄/home/zhang/files下的所有文件壓縮,它會自動在files下的所有文件后面加上.gz
gzip -r9 /home/
參數9表示最大的壓縮率
如果對目錄進行壓縮,就需加參數-r
對上面壓縮的文件進行解壓
gzip -dr /home/
gunzip(gnu unzip)
功能說明:解壓文件。
語 法:gunzip [-acfhlLnNqrtvV][-s 壓縮字尾字符串>][文件...] 或 gunzip [-acfhlLnNqrtvV][-s 壓縮字尾字符串>][目錄]
補充說明:gunzip是個使用廣泛的解壓縮程序,它用於解開被gzip壓縮過的文件,這些壓縮文件預設最后的擴展名為".gz"。事實上gunzip就是gzip的硬連接,因此不論是壓縮或解壓縮,都可通過gzip指令單獨完成。可以識別.tgz(.tar.gz的縮寫), .taz(.tar.z的縮寫),.gz, -gz, .z, -z, _z or .Z和沒有后綴,但被gzip壓縮的
參 數:
-a或--ascii 使用ASCII文字模式。
-c或--stdout或--to-stdout 把解壓后的文件輸出到標准輸出設備。
-f或-force 強行解開壓縮文件,不理會文件名稱或硬連接是否存在以及該文件是否為符號連接。
-h或--help 在線幫助。
-l或--list 列出壓縮文件的相關信息。
-L或--license 顯示版本與版權信息。
-n或--no-name 解壓縮時,若壓縮文件內含有遠來的文件名稱及時間戳記,則將其忽略不予處理。
-N或--name 解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其回存到解開的文件上。 (utility)
-q或--quiet 不顯示警告信息。
-r或--recursive 遞歸處理,將指定目錄下的所有文件及子目錄一並處理。
-S壓縮字尾字符串>或--suffix壓縮字尾字符串> 更改壓縮字尾字符串。
-t或--test 測試壓縮文件是否正確無誤。
-v或--verbose 顯示指令執行過程。
-V或--version 顯示版本信息。
例如:解壓時,必須給出完整的路徑,因為壓縮時,是對文件,沒有對一個目錄整體
如: gunzip /home/zhang/files/*
bzip2
bzip2, bunzip2 - a block-sorting file compressor, v1.0.2
bzcat - decompresses files to stdout
bzip2recover - recovers data from damaged bzip2 files
如果對一個文件夾進行壓縮時,他會將各個文件分別進行壓縮,目錄仍然存在,不會被壓縮。所以,如果想一個目錄下的所有文件被壓縮成一個壓縮包的話,就得先打包,再壓縮,而zip就不需要。壓縮文件只能是本地目錄,不能指定保存目錄,除非和tar合用
只對文件進行壓縮,不能對目錄進行壓縮,因為它沒有-r選項
usage: bzip2 [flags and input files in any order]
-c --stdout
Compress or decompress to standard output.
-d --decompress
Force decompression. bzip2, bunzip2 and bzcat are really the
same program, and the decision about what actions to take is
done on the basis of which name is used. This flag overrides
that mechanism, and forces bzip2 to decompress.
-z --compress
The complement to -d: forces compression, regardless of the
invocation name.
-t --test
Check integrity of the specified file(s), but don't decompress
-f --force
Force overwrite of output files. Normally, bzip2 will not over-
write existing output files. Also forces bzip2 to break hard
links to files, which it otherwise wouldn't do.
bzip2 normally declines to decompress files which don't have the
correct magic header bytes. If forced (-f), however, it will
pass such files through unmodified. This is how GNU gzip
behaves.
-k --keep
Keep (don't delete) input files during compression or decompres-
sion.
-s --small
Reduce memory usage, for compression, decompression and testing.
Files are decompressed and tested using a modified algorithm
which only requires 2.5 bytes per block byte. This means any
file can be decompressed in 2300k of memory, albeit at about
half the normal speed.
During compression, -s selects a block size of 200k, which lim-
its memory use to around the same figure, at the expense of your
compression ratio. In short, if your machine is low on memory
(8 megabytes or less), use -s for everything. See MEMORY MAN-
AGEMENT below.(現在的機子不存在這種問題)
-q --quiet
Suppress non-essential warning messages. Messages pertaining to
I/O errors and other critical events will not be suppressed.
-v --verbose
Verbose mode -- show the compression ratio for each file pro-
cessed. Further -v's increase the verbosity level, spewing out
lots of information which is primarily of interest for diagnos-
tic purposes.
-L --license -V --version
Display the software version, license terms and conditions.
-1 (or --fast) to -9 (or --best) (在磁帶上非常有用,因為在磁帶上得指定壓縮塊的大小,解壓縮時也得告訴其塊的大小)
Set the block size to 100 k, 200 k .. 900 k when compressing.
Has no effect when decompressing.
The --fast and --best aliases are primarily for GNU gzip compat-
ibility. In particular, --fast doesn't make things signifi-
cantly faster. And --best merely selects the default behaviour.
-- Treats all subsequent arguments as file names, even if they
start with a dash. This is so you can handle files with names
beginning with a dash, for example: bzip2 -- -myfilename.
--repetitive-fast --repetitive-best
These flags are redundant in versions 0.9.5 and above. They
provided some coarse control over the behaviour of the sorting
algorithm in earlier versions, which was sometimes useful.
0.9.5 and above have an improved algorithm which renders these
flags irrelevant
If invoked as `bzip2', default action is to compress.
as `bunzip2', default action is to decompress.
as `bzcat', default action is to decompress to stdout.
例如:將目錄/home/zhang/files下的所有文件壓縮,它會自動在files下的所有文件后面加上.bz2, 並且將塊的大小設置為900k字節,也就是說,以900k字節作為一個塊進行壓縮
bzip2 -9z /home/zhang/files
對上面壓縮的文件進行解壓
bzip2 -d /home/zhang/files/*
bzip2和gzip的比較
Jeremy Zawodny 最新的測試發現,bzip2有更高的壓縮比,但有非常明顯的時間開銷,無論是在壓縮時還是在解壓時。
gzip3d.png 他分別用了gzip和bzip2,並各自帶了命令行參數"-9",壓縮一個2,661,512 (or 2.5GB)字節的文件,然后解壓縮,並將這個過程重復了一次,得結果如下:
壓縮用時 壓縮后文件大小 解壓用時
gzip 14:31 349,736 0:55
bzip2 39:44 275,344 9:46
tar and gzip
將/usr/src下的各個文件打包后,再壓縮,包名為src.tar.gz
tar zvfc src.tar.gz /usr/src
解壓壓縮包
tar xvfz src.gz
tar and bzip2
tar -cvjf archivefile.tar.bz2 file-list
example:
將/usr/src下的各個文件打包后,再壓縮,包名為src.tar.bz2(the dash(-) doesn't affect the result)
tar cjfv src.tar.bz2 /usr/src
解壓壓縮包
tar -xvjf archivefile.tar.bz2
example:
tar vjxf src.tar.bz2
bzcat archivefile.tar.bz2 | tar -xvf -
提示,不能將bzcat改成bzip2 -d,改了后不能解包,只能解壓
上面的解壓,也可寫成如下的形式
bzip2 -cd archivefile.tar.bz2 | tar -xvf -
最后的“-”表示接收標准輸出的數據
gzip -cd archivefile.tar.bz2 | tar -xvf -
-c表明將解壓后的文件輸出到標准輸出,只有輸出到標准輸出,tar命令才能使用
生成 bzip2 壓縮的 tar 文件可以使用:
tar -cvf - filenames | bzip2 > archivefile.tar.bz2
生成 gzip 壓縮的 tar 文件可以使用:
tar -cvf - filenames | gzip > archivefile.tar.bz2
