# zip -rP abc#123 test.zip test.txt
-P abc#123 是加密密碼
-r 遞歸,將指定目錄下的所有文件和子目錄一併處理
test.zip 是生成的壓縮文件
test.txt 是被壓縮的文件
zip [參數] <壓縮包> <源文件>
使用zip格式打包文件
-r 遞歸,將指定目錄下的所有文件和子目錄一併處理
-S 包含系統和隱藏文件
-y 直接保存符號連接,而非該連接所指向的文件
-X 不保存額外的文件屬性
-m 將文件壓縮並加入壓縮文件後,刪除源文件
-<壓縮級別> 1~9,數字越大,壓縮率越高
-F 嘗試修復已損壞的壓縮文件
-T 檢查備份文件內的每個文件是否正確無誤
-q 不顯示指令執行過程
-g 將文件壓縮後附加在既有的壓縮文件之後,而非另行建立新的壓縮文件
-u 更新壓縮包內文件
-f 更新壓縮包內文件。如果符合條件的文件沒有包含在壓縮包中,則壓縮後添加
-$ 保存第一個被壓縮文件所在磁盤的卷標
-j 只保存文件名稱及其內容
-D 壓縮文件內不建立目錄名稱
-i <表達式> 壓縮目錄時,只壓縮符合條件的文件
-x <表達式> 排除符合條件的文件
-n <文件名後綴> 排除指定文件名後綴的文件
-b <緩存路徑> 指定臨時文件目錄
-d <表達式> 從壓縮文件內刪除指定的文件
-t <日期時間> 把壓縮文件的日期設成指定的日期
-o 以壓縮文件內擁有最新更改時間的文件爲準,將壓縮文件的更改時間設成和該文件相同
-A 調整可執行的自動解壓縮文件
-c 替每個被壓縮的文件加上註釋
-z 替壓縮文件加上註釋
-k 使用MS-DOS兼容格式的文件名稱。
-l 壓縮文件時,把LF字符置換成LF+CR字符。
-ll 壓縮文件時,把LF+CR字符置換成LF字符。
unzip [參數] <壓縮文件> [壓縮包中將被釋放的文件]
解壓zip壓縮包文件
-P <密碼> zip壓縮包的密碼
-d <路徑> 指定解壓路徑
-n 解壓縮時不覆蓋原有文件
-f 覆蓋原有文件
-o 不經詢問,直接覆蓋原有文件
-u 覆蓋原有文件,並將壓縮文件中的其他文件解壓縮到目錄中
-l 顯示壓縮文件內所包含的文件
-t 檢查壓縮文件是否正確理裏排除壓縮包中的指定文
-z 顯示壓縮包註釋
-Z unzip -Z等於執行zipinfo指令
-j 不處理壓縮文件中原有的目錄路徑
-C 壓縮文件中的文件名稱區分大小寫
-L 將壓縮文件中的全部文件名改爲小寫
-s 將文件名中的空格轉換下劃線
-X 解壓縮時保留文件原來的UID/GID
-q 執行時不顯示任何信息
-v 執行是時顯示詳細的信息
-c 將解壓縮的結果顯示到屏幕上,並對字符做適當的轉換
-p 與-c參數類似,會將解壓縮的結果顯示到屏幕上,但不會執行任何的轉換
-a 對文本文件進行必要的字符轉換
-b 不要對文本文件進行字符轉換
-x <表達式> 處理裏排除壓縮包中的指定文件
-M 將輸出結果送到more程序處理
附錄:
Linux常用打包解包方法
1、打包/壓縮
zip filename.zip filename
tar cvf filename.tar filename
gtar zcvf filename.tar.gz filename
gzip filename 將產生文件 filename.gz
2、解包
unzip filename.zip
tar xvf filename.tar
gtar zxvf filename.tar.gz
gzip -d filename.gz
rar--------------------------------------------------------------------------------------------------------------
如果是以tarball形式安裝安裝,去rar網站下載相應版本的tarball。地址爲http://www.rarlab.com/
以3.8版本爲例,如果是i386的平臺,執行以下命令:
$wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz
rar軟件不需要安裝,直接解壓到/usr/local下,以下操作需要有root權限。
#tar zxvf rarlinux-3.8.0.tar.gz -C /usr/local
此時,/usr/local/rar下就會有rar命令和unrar命令。可以在/usr/local/bin下創建連接
#ln -s /usr/local/rar/rar /usr/local/bin/rar
#ln -s /usr/local/rar/unrar /usr/local/bin/unrar
如果是debian或者unbuntu,可以使用如下命令進行自動安裝。
$sudo apt-get install rar
$sudo apt-get install unrar
注意:rar的<命令>部分不帶"-"號,只有<選項>部分帶"-"號,這一點注意一下。
例1:添加文件或目錄到壓縮檔案中,使用a命令。例如把文件files1添加到abc.rar中,使用a或m命令,a命令把file1文件添加到abc.rar檔案中保持原有的file1文件不變,m命令移動file1文件到file1.rar檔案中(壓縮完成後會刪除原有的file1文件,注意:m命令只針對文件進行操作)
$rar a abc.rar file1
說明:如果此時abc.rar檔案不存在,會自行創建abc.rar文檔案,如果abc.rar檔案已經存在,則將file1文件壓縮進abc.rar檔案中,若abc.rar檔案中已存在一個file1文件,則會更新file1文件。並且原有的file1文件依然存在於當前目錄下,若要將file1文件移動到file1.rar中請使用m命令,對於目錄同樣可以進行此操作。
注意:如果只輸入"rar a file1.rar"命令,而沒有接文件名或目錄名的話,會將當前目錄下所有的文件和文件夾壓縮進file1.rar文檔中。這點要注意一下。
例2:解壓縮abc.rar檔案中的內容,可以使用e或x命令,假設abc.rar目錄中有一個名爲file1的文件和一個名爲test的目錄,test目錄中有一個名爲file2的文件,
$rar e abc.rar
說明:使用e命令,會將abc.rar中的file1文件連同test目錄下的file2文件解壓到當前目錄。如果想保持abc.rar目錄中的目錄結構請使用x命令。
$rar x abc.rar
說明:此時會將file1文件和test目錄解壓到當前文件夾。
例3:爲整個壓縮文件添加註釋
$rar c abc.rar
說明:輸入該命令後,屏幕最下方會顯示
Processing archive test.
rarReading comment from stdin
並有一個光標在閃爍,從光標閃爍的位置輸入註釋信息,輸入完了按下Ctrl+D結束輸入
例4:爲壓縮文件中的單個文件添加註釋,使用cf命令。假如現在要爲abc.rar檔案中的file1文件添加註釋
$rar ch abc.rar file1
此時屏幕最下方會顯示
Reading comment for abc.rar : file1 from stdin
從光標閃爍出輸入想要爲file1添加的註釋,Ctrl+D結束輸入
例4:把整個檔案的註釋寫入到一個文件中,使用cw命令。加入要將abc.rar的註釋寫入到test.txt文件中
$rar cw abc.rar test.txt
說明:如果當前目錄下不存在名爲test.txt的文件,則會自行創建一個名爲test.txt的文件,並將abc.rar的註釋寫入到text.txt文件中,如果當前目錄中已經存在一個名爲text.txt的文件,則會提示你是否覆蓋已經存在的文件,如果選擇Yes或者All,則會清空test.txt中原有的內容,然後將abc.rar的註釋內容寫入到text.txt文件中。
例4:刪除壓縮檔案中的文件或目錄,使用d命令。例如要刪除abc.rar檔案中的file1文件。
$rar d abc.rar file1
說明:該命令刪除abc.rar檔案中的file1文件,對於目錄同樣有效。
以上爲常用的壓縮與解壓縮命令,<選項>部分的使用不再進行介紹了,請大家自己嘗試一下吧。
解壓縮命令unrar的使用:
$unrar --help
用法: unrar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\>
<命令>
e 解壓文件到當前目錄
l[t,b] 列出壓縮文檔信息[technical, bare]
p 打印文件到標準輸出
t 測試壓縮我俄當
v[t,b] 列出壓縮文檔的詳細信息[technical,bare]
x 解壓文件到完整路徑
以下爲<選項>部分,略去。
unrar的命令和rar具有同樣的效果,可以看出unrar只包含了rar的一部分命令而已,因此使用rar就可以完成所有操作。
tar-----------------------------------------------------------------------------------------------------
.tar.gz
解壓:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName
大致總結了一下linux下各種格式的壓縮包的壓縮、解壓方法。但是部分方法我沒有用到,也就不全,希望大家幫我補充,我將隨時修改完善,謝謝!
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是壓縮!)
---------------------------------------------
.gz
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓縮:gzip FileName
.tar.gz 和 .tgz
解壓:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
解壓1:bzip2 -d FileName.bz2
解壓2:bunzip2 FileName.bz2
壓縮: bzip2 -z FileName
.tar.bz2
解壓:tar jxvf FileName.tar.bz2
壓縮:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz
壓縮:未知
.tar.bz
解壓:tar jxvf FileName.tar.bz
壓縮:未知
---------------------------------------------
.Z
解壓:uncompress FileName.Z
壓縮:compress FileName
.tar.Z
解壓:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName
---------------------------------------------
.zip
解壓:unzip FileName.zip
壓縮:zip FileName.zip DirName
---------------------------------------------
.rar
解壓:rar x FileName.rar
壓縮:rar a FileName.rar DirName
rar請到:http://www.rarsoft.com/download.htm 下載!
解壓後請將rar_static拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):
[root@www2 tmp]# cp rar_static /usr/bin/rar
---------------------------------------------
.lha
解壓:lha -e FileName.lha
壓縮:lha -a FileName.lha FileName
lha請到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下載!
>解壓後請將lha拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):
[root@www2 tmp]# cp lha /usr/bin/
---------------------------------------------
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
---------------------------------------------
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
---------------------------------------------
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm
.deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx
.zoo .cab .kar .cpt .pit .sit .sea
解壓:sEx x FileName.*
壓縮:sEx a FileName.* FileName
sEx只是調用相關程序,本身並無壓縮、解壓功能,請注意!
sEx請到: http://sourceforge.net/projects/sex下載!
解壓後請將sEx拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):
[root@www2 tmp]# cp sEx /usr/bin/
參考文獻:Linux 文件壓縮工具指南
(其實看幫助是最好的方法,一般各個命令都可以用“--help”參數得到常用使用方法!)
用戶經常需要備份計算機系統中的數據,爲了節省存儲空間,常常將備份文件進行壓縮。下面分別介紹備份與壓縮的命令。
tar命令------------------------------------------------------------
tar可以爲文件和目錄創建檔案。利用tar,用戶可以爲某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。 tar最初被用來在磁帶上創建檔案,現在,用戶可以在任何設備上創建檔案,如軟盤。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於 備份文件或將幾個文件組合成爲一個文件以便於網絡傳輸是非常有用的。Linux上的tar是GNU版本的。
語法:tar [主選項+輔選項] 文件或者目錄
使用該命令時,主選項是必須要有的,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。
主選項:
c 創建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。
r 把要存檔的文件追加到檔案文件的未尾。例如用戶已經作好備份文件,又發現還有一個目錄或是一些文件忘記備份了,這時可以使用該選項,將忘記的目錄或文件追加到備份文件中。
t 列出檔案文件的內容,查看已經備份了哪些文件。
u 更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最後。
x 從檔案文件中釋放文件。
輔助選項:
b 該選項是爲磁帶機設定的。其後跟一數字,用來說明區塊的大小,系統預設值爲20(20*512 bytes)。
f 使用檔案文件或設備,這個選項通常是必選的。
k 保存已經存在的文件。例如我們把某個文件還原,在還原的過程中,遇到相同的文件,不會進行覆蓋。
m 在還原文件時,把所有文件的修改時間設定爲現在。
M 創建多卷的檔案文件,以便在幾個磁盤中存放。
v 詳細報告tar處理的文件信息。如無此選項,tar不報告文件信息。
w 每一步都要求確認。
z 用gzip來壓縮/解壓縮文件,加上該選項後可以將檔案文件進行壓縮,但還原時也一定要使用該選項進行解壓縮。
例1:把/home目錄下包括它的子目錄全部做備份文件,備份文件名爲usr.tar。
$ tar cvf usr.tar /home
例2:把/home目錄下包括它的子目錄全部做備份文件,並進行壓縮,備份文件名爲usr.tar.gz 。
$ tar czvf usr.tar.gz /home
例3:把usr.tar.gz這個備份文件還原並解壓縮。
$ tar xzvf usr.tar.gz
例4:查看usr.tar備份文件的內容,並以分屏方式顯示在顯示器上。
$ tar tvf usr.tar | more
要將文件備份到一個特定的設備,只需把設備名作爲備份文件名。
例5:用戶在/dev/fd0設備的軟盤中創建一個備份文件,並將/home 目錄中所有的文件都拷貝到備份文件中。
$ tar cf /dev/fd0 /home
要恢復設備磁盤中的文件,可使用xf選項:
$ tar xf /dev/fd0
如果用戶備份的文件大小超過設備可用的存貯空間,如軟盤,您可以創建一個多卷的tar備份文件。M選項指示tar命令提示您使用一個新的存貯 設備,當使用M選項向一個軟驅進行存檔時,tar命令在一張軟盤已滿的時候會提醒您再放入一張新的軟盤。這樣您就可以把tar檔案存入幾張磁盤中。
$ tar cMf /dev/fd0 /home
要恢復幾張盤中的檔案,只要將第一張放入軟驅,然後輸入有x和M選項的tar命令。在必要時您會被提醒放入另外一張軟盤。
$ tar xMf /dev/fd0
gzip命令------------------------------------------------------------------------------------------------
減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。gzip是在Linux系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。
語法:gzip [選項] 壓縮(解壓縮)的文件名
各選項的含義:
-c 將輸出寫到標準輸出上,並保留原有文件。
-d 將壓縮文件解壓。
-l 對每個壓縮文件,顯示下列字段:
壓縮文件的大小
未壓縮文件的大小
壓縮比
未壓縮文件的名字
-r 遞歸式地查找指定目錄並壓縮其中的所有文件或者是解壓縮。
-t 測試,檢查壓縮文件是否完整。
-v 對每一個壓縮和解壓的文件,顯示文件名和壓縮比。
-num 用指定的數字num調整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統缺省值爲6。
假設一個目錄/home下有文件mm.txt、sort.txt、xx.com。
例1:把/home目錄下的每個文件壓縮成.gz文件。
$ cd /home
$ gzip *
$ ls
m.txt.gz sort.txt.gz xx.com.gz
例2:把例1中每個壓縮的文件解壓,並列出詳細的信息。
$ gzip -dv *
mm.txt.gz 43.1%-----replaced with mm.txt
sort.txt.gz 43.1%-----replaced with sort.txt
xx.com.gz 43.1%-----replaced with xx.com
$ ls
mm.txt sort.txt xx.com
例3:詳細顯示例1中每個壓縮的文件的信息,並不解壓。
$ gzip -l *
compressed uncompr. ratio uncompressed_name
277 445 43.1% mm.txt
278 445 43.1% sort.txt
277 445 43.1% xx.com
$ ls
mm.txt.gz sort.txt.gz xx.com.gz
例4:壓縮一個tar備份文件,如usr.tar,此時壓縮文件的擴展名爲.tar.gz
$ gzip usr.tar
$ ls
usr.tar.gz
unzip命令
用MS Windows下的壓縮軟件winzip壓縮的文件如何在Linux系統下展開呢?可以用unzip命令,該命令用於解擴展名爲.zip的壓縮文件。
語法:unzip [選項] 壓縮文件名.zip
各選項的含義分別爲:
-x 文件列表 解壓縮文件,但不包括指定的file文件。
-v 查看壓縮文件目錄,但不解壓。
-t 測試文件有無損壞,但不解壓。
-d 目錄 把壓縮文件解到指定目錄下。
-z 只顯示壓縮文件的註解。
-n 不覆蓋已經存在的文件。
-o 覆蓋已存在的文件且不要求用戶確認。
-j 不重建文檔的目錄結構,把所有文件解壓到同一目錄下。
例1:將壓縮文件text.zip在當前目錄下解壓縮。
$ unzip text.zip
例2:將壓縮文件text.zip在指定目錄/tmp下解壓縮,如果已有相同的文件存在,要求unzip命令不覆蓋原先的文件。
$ unzip -n text.zip -d /tmp
例3:查看壓縮文件目錄,但不解壓。
$ unzip -v text.zip
zgrep命令---------------------------------------------------------------------------------------------------
這個命令的功能是在壓縮文件中尋找匹配的正則表達式,用法和grep命令一樣,只不過操作的對象是壓縮文件。如果用戶想看看在某個壓縮文件中有沒有某一句話,便可用zgrep命令。