天天看點

linux壓縮與解壓縮指令總結

                 linux壓縮與解壓縮指令

(1)壓縮指令gzip

gzip

功能說明:壓縮檔案。

語  法: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  壓縮檔案時,儲存原來的檔案名稱及時間戳記。 

 -q或--quiet  不顯示警告資訊。 

 -r或--recursive  遞歸處理,将指定目錄下的所有檔案及子目錄一并處理。 

 -S<壓縮字尾字元串>或----suffix<壓縮字尾字元串>  更改壓縮字尾字元串。 

 -t或--test  測試壓縮檔案是否正确無誤。 

 -v或--verbose  顯示指令執行過程。 

 -V或--version  顯示版本資訊。 

 -<壓縮效率>  壓縮效率是一個介于1-9的數值,預設值為"6",指定愈大的數值,壓縮效率就會愈高。 

 --best  此參數的效果和指定"-9"參數相同。 

 --fast  此參數的效果和指定"-1"參數相同。 

########################################################################################

eg:

[root@Centos /]# gzip -9r  /home/(把home目錄的檔案進行遞歸的壓縮,9是進行最大化的壓縮)

^Z(ctrl+z,暫停正在運作的指令)

[1]+  Stopped                 gzip -9r /home/

[root@Centos /]# jobs (檢視背景運作的程序)

[root@Centos /]# bg 1(讓程序到背景去運作)

[1]+ gzip -9r /home/ &

[root@Centos /]# fg 1

gzip -9r /home/

^C(crtl+C,停止正在運作的程序)

[root@Centos /]# kill 1(殺死程序号)

gzip -9r /home/ &(這條指令是直接把程序放到背景去執行)

[root@Centos home]# gzip -9 nxclient-3.5.0-7.i386.rpm 

############################################################################################

對gzip的解壓縮指令

語  法:gunzip [-acfhlLnNqrtvV][-s <壓縮字尾字元串>][檔案...] 或 gunzip [-acfhlLnNqrtvV][-s <壓縮字尾字元串>][目錄]

補充說明:gunzip是個使用廣泛的解壓縮程式,它用于解開被gzip壓縮過的檔案,這些壓縮檔案預設最後的擴充名為".gz"。事實上gunzip就是gzip的硬連接配接,是以不論是壓縮或解壓縮,都可通過gzip指令單獨完成。

 -c或--stdout或--to-stdout  把解壓後的檔案輸出到标準輸出裝置。 

 -f或-force  強行解開壓縮檔案,不理會檔案名稱或硬連接配接是否存在以及該檔案是否為符号連接配接。 

 -n或--no-name  解壓縮時,若壓縮檔案内含有遠來的檔案名稱及時間戳記,則将其忽略不予處理。 

 -N或--name  解壓縮時,若壓縮檔案内含有原來的檔案名稱及時間戳記,則将其回存到解開的檔案上。 

 -S<壓縮字尾字元串>或--suffix<壓縮字尾字元串>  更改壓縮字尾字元串。 

 -V或--version 顯示版本資訊。

##########################################################################################

[root@Centos home]# ls

a.sh.gz  iso  lost+found  nxclient-3.5.0-7.i386.rpm.gz

[root@Centos home]# gunzip nxclient-3.5.0-7.i386.rpm.gz 

a.sh.gz  iso  lost+found  nxclient-3.5.0-7.i386.rpm

字尾名為.gz的可以用gunzip指令解壓縮。

###########################################################################################

(2)壓縮指令bzip2

語  法:bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][- 壓縮等級][要壓縮的檔案]

補充說明:bzip2采用新的壓縮演算法,壓縮效果比傳統的LZ77/LZ78壓縮演算法來得好。若沒有加上任何參數,bzip2壓縮完檔案後會産生.bz2的壓縮檔案,并删除原始的檔案。

 -c或--stdout  将壓縮與解壓縮的結果送到标準輸出。 

 -d或--decompress  執行解壓縮。 

 -f或--force  bzip2在壓縮或解壓縮時,若輸出檔案與現有檔案同名,預設不會覆寫現有檔案。若要覆寫,請使用此參數。 

 -h或--help  顯示幫助。 

 -k或--keep  bzip2在壓縮或解壓縮後,會删除原始的檔案。若要保留原始檔案,請使用此參數。 

 -s或--small  降低程式執行時記憶體的使用量。 

 -t或--test  測試.bz2壓縮檔案的完整性。 

 -v或--verbose  壓縮或解壓縮檔案時,顯示詳細的資訊。 

 -z或--compress  強制執行壓縮。 

 -L,--license,

 --repetitive-best  若檔案中有重複出現的資料時,可利用此參數提高壓縮效果。 

 --repetitive-fast  若檔案中有重複出現的資料時,可利用此參數加快執行速度。 

 -壓縮等級  壓縮時的區塊大小。

[root@Centos home]# bzip2 -9 nxclient-3.5.0-7.i386.rpm

[root@Centos home]# bzip2  -k nxclient-3.5.0-7.i386.rpm (對該檔案進行壓縮且保留該檔案)

nxclient-3.5.0-7.i386.rpm  nxclient-3.5.0-7.i386.rpm.bz2

對bzip的解壓縮指令(bunzip2)

語  法:bunzip2 [-fkLsvV][.bz2壓縮檔案]

補充說明:bunzip2可解壓縮.bz2格式的壓縮檔案。bunzip2實際上是bzip2的符号連接配接,執行bunzip2與bzip2 -d的效果相同。

 -f或--force  解壓縮時,若輸出的檔案與現有檔案同名時,預設不會覆寫現有的檔案。若要覆寫,請使用此參數。 

 -k或--keep  在解壓縮後,預設會删除原來的壓縮檔案。若要保留壓縮檔案,請使用此參數。 

 -s或--small  降低程式執行時,記憶體的使用量。 

 -v或--verbose  解壓縮檔案時,顯示詳細的資訊。 

 -l,--license,-V或--version  顯示版本資訊。

############################################################################

root@Centos home]# bzip2 -9 nxclient-3.5.0-7.i386.rpm

[root@Centos home]# bunzip2 nxclient-3.5.0-7.i386.rpm.bz2 

###############################################################################

(3)tar   打包和壓縮。打包是指将一大堆檔案或目錄變成

           一個總的檔案;壓縮則是将一個大的檔案通過一

           些壓縮算法變成一個小檔案。 

語  法:tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <區塊數目>][-C <目的目錄>][-f <備份檔案>][-F <Script檔案>][-K <檔案>][-L <媒體容量>][-N <日期時間>][-T <範本檔案>][-V <卷冊名稱>][-X <範本檔案>][-<裝置編号><存儲密度>][--after-date=<日期時間>][--atime-preserve][--backuup=<備份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<範本樣式>][--force-local][--group=<群組名稱>][--help][--ignore-failed-read][--new-volume-script=<Script檔案>][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<使用者名稱>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<區塊數目>][--recursive-unlink][--remove-files][--rsh-command=<執行指令>][--same-owner][--suffix=<備份字尾字元串>][--totals][--use-compress-program=<執行指令>][--version][--volno-file=<編号檔案>][檔案或目錄...]

補充說明:tar是用來建立,還原備份檔案的工具程式,它可以加入,解開備份檔案内的檔案。

  -A或--catenate   新增溫暖件到已存在的備份檔案。

  -b<區塊數目>或--blocking-factor=<區塊數目>   設定每筆記錄的區塊數目,每個區塊大小為12Bytes。

  -B或--read-full-records   讀取資料時重設區塊大小。

  -c或--create   建立新的備份檔案。

  -C<目的目錄>或--directory=<目的目錄>   切換到指定的目錄。

  -d或--diff或--compare   對比備份檔案内和檔案系統上的檔案的差異。

  -f<備份檔案>或--file=<備份檔案>   指定備份檔案。

  -F<Script檔案>或--info-script=<Script檔案>   每次更換錄音帶時,就執行指定的Script檔案。

  -g或--listed-incremental   處理GNU格式的大量備份。

  -G或--incremental   處理舊的GNU格式的大量備份。

  -h或--dereference   不建立符号連接配接,直接複制該連接配接所指向的原始檔案。

  -i或--ignore-zeros   忽略備份檔案中的0 Byte區塊,也就是EOF。

  -k或--keep-old-files   解開備份檔案時,不覆寫已有的檔案。

  -K<檔案>或--starting-file=<檔案>   從指定的檔案開始還原。

  -l或--one-file-system   複制的檔案或目錄存放的檔案系統,必須與tar指令執行時所處的檔案系統相同,否則不予複制。

  -L<媒體容量>或-tape-length=<媒體容量>   設定存放每體的容量,機關以1024 Bytes計算。

  -m或--modification-time   還原檔案時,不變更檔案的更改時間。

  -M或--multi-volume   在建立,還原備份檔案或列出其中的内容時,采用多卷冊模式。

  -N<日期格式>或--newer=<日期時間>   隻将較指定日期更新的檔案儲存到備份檔案裡。

  -o或--old-archive或--portability   将資料寫入備份檔案時使用V7格式。

  -O或--stdout   把從備份檔案裡還原的檔案輸出到标準輸出裝置。

  -p或--same-permissions   用原來的檔案權限還原檔案。

  -P或--absolute-names   檔案名使用絕對名稱,不移除檔案名稱前的"/"号。

  -r或--append   新增檔案到已存在的備份檔案的結尾部分。

  -R或--block-number   列出每個資訊在備份檔案中的區塊編号。

  -s或--same-order   還原檔案的順序和備份檔案内的存放順序相同。

  -S或--sparse   倘若一個檔案内含大量的連續0位元組,則将此檔案存成稀疏檔案。

  -t或--list   列出備份檔案的内容。

  -T<範本檔案>或--files-from=<範本檔案>   指定範本檔案,其内含有一個或多個範本樣式,讓tar解開或建立符合設定條件的檔案。

  -u或--update   僅置換較備份檔案内的檔案更新的檔案。

  -U或--unlink-first   解開壓縮檔案還原檔案之前,先解除檔案的連接配接。

  -v或--verbose   顯示指令執行過程。

  -V<卷冊名稱>或--label=<卷冊名稱>   建立使用指定的卷冊名稱的備份檔案。

  -w或--interactive   遭遇問題時先詢問使用者。

  -W或--verify   寫入備份檔案後,确認檔案正确無誤。

  -x或--extract或--get  從備份檔案中還原檔案。

  -X<範本檔案>或--exclude-from=<範本檔案>  指定範本檔案,其内含有一個或多個範本樣式,讓ar排除符合設定條件的檔案。

  -z或--gzip或--ungzip   通過gzip指令處理備份檔案。

  -Z或--compress或--uncompress   通過compress指令處理備份檔案。

  -<裝置編号><存儲密度>   設定備份用的外圍裝置編号及存放資料的密度。

  --after-date=<日期時間>   此參數的效果和指定"-N"參數相同。

  --atime-preserve   不變更檔案的存取時間。

  --backup=<備份方式>或--backup   移除檔案前先進行備份。

  --checkpoint   讀取備份檔案時列出目錄名稱。

  --concatenate   此參數的效果和指定"-A"參數相同。

  --confirmation   此參數的效果和指定"-w"參數相同。

  --delete   從備份檔案中删除指定的檔案。

  --exclude=<範本樣式>   排除符合範本樣式的問家。

  --group=<群組名稱>   把加入裝置檔案中的檔案的所屬群組設成指定的群組。

  --help   線上幫助。

  --ignore-failed-read   忽略資料讀取錯誤,不中斷程式的執行。

  --new-volume-script=<Script檔案>   此參數的效果和指定"-F"參數相同。

  --newer-mtime   隻儲存更改過的檔案。

  --no-recursion   不做遞歸處理,也就是指定目錄下的所有檔案及子目錄不予處理。

  --null   從null裝置讀取檔案名稱。

  --numeric-owner   以使用者識别碼及群組識别碼取代使用者名稱和群組名稱。

  --owner=<使用者名稱>   把加入備份檔案中的檔案的擁有者設成指定的使用者。

  --posix   将資料寫入備份檔案時使用POSIX格式。

  --preserve      此參數的效果和指定"-ps"參數相同。

  --preserve-order      此參數的效果和指定"-A"參數相同。

  --preserve-permissions      此參數的效果和指定"-p"參數相同。

  --record-size=<區塊數目>      此參數的效果和指定"-b"參數相同。

  --recursive-unlink   解開壓縮檔案還原目錄之前,先解除整個目錄下所有檔案的連接配接。

  --remove-files   檔案加入備份檔案後,就将其删除。

  --rsh-command=<執行指令>   設定要在遠端主機上執行的指令,以取代rsh指令。

  --same-owner   嘗試以相同的檔案擁有者還原問家你。

  --suffix=<備份字尾字元串>   移除檔案前先行備份。

  --totals   備份檔案建立後,列出檔案大小。

  --use-compress-program=<執行指令>   通過指定的指令處理備份檔案。

  --version   顯示版本資訊。

  --volno-file=<編号檔案>   使用指定檔案内的編号取代預設的卷冊編号。

常用的參數:

-c — 建立一個新歸檔。

-f — 當與 -c 選項一起使用時,建立的 tar 檔案使用該選項指定的檔案名;當與 -x 選項

一起使用時,則解除該選項指定的歸檔。

-t — 顯示包括在 tar 檔案中的檔案清單。

-v — 顯示檔案的歸檔進度。

-x — 從歸檔中抽取檔案。

-z — 使用 gzip 來壓縮 tar 檔案。

-j — 使用 bzip2 來壓縮 tar 檔案。

################################################################

[root@Centos /]# tar -cvf /home/root.tar /root 僅僅是打包,不壓縮

這個是f與c一起用,則為打包建立這個檔案。通常是把一類檔案或者一個目錄的很多檔案打包,

是把root目錄打包成root.tar然後放到home目錄下面,其中字尾名.tar是為了容易差別。

[root@Centos home]# tar -xvf /home/root.tar -C /usr/src/

這個是f與v一起用,則是把打包的一起釋放出來,-C是指定路徑

[root@Centos ~]# tar -zcvf /home/root.tar.gz /root 打包後,以gzip壓縮

參數z是說以gzip的形式,來解、壓縮的。

真正決定是壓縮還是解壓,取決于是cf還是xf。

[root@Centos ~]# tar -zxvf /home/root.tar.gz -C  /usr/src/ 

[root@Centos ~]# tar -jcvf /home/root.tar.gz /root 打包後,以bzip2壓縮

參數j是說以bzip2的形式,來解、壓縮的。

[root@Centos ~]# tar -jxvf /home/root.tar.gz -C  /usr/src/ 

[root@linux~]#cpio-covB>[file|device]<==備份

[root@linux~]#cpio-icduv<[file|device]<==還原

參數:

◆-o:将資料copy輸出到檔案或裝置上

◆-i:将資料自檔案或裝置copy出來系統當中

◆-t:檢視cpio建立的檔案或裝置的内容

◆-c:一種較新的portableformat方式儲存

◆-v:讓儲存的過程中檔案名稱可以在螢幕上顯示

◆-B:讓預設的Blocks可以增加至5120bytes,預設是512bytes!這樣的好處是可以讓大檔案的儲存速度加快(請參考i-nodes的觀念)

◆-d:自動建立目錄!由於cpio的内容可能不是在同一個目錄内,如此的話在反備份的過程會有問題!這個時候加上-d的話,就可以自動的将需要的目錄建立起來了!

◆-u:自動的将較新的檔案覆寫較舊的檔案!

本文轉自 jie783213507 51CTO部落格,原文連結:http://blog.51cto.com/litaotao/1187984,如需轉載請自行聯系原作者

繼續閱讀