如何合理的進(jìn)行Linux下的文件管理
原創(chuàng)【51CTO獨(dú)家特稿】隨著Linux開源系統(tǒng)平臺(tái)的不斷發(fā)展,越來越多的開源軟件可以提供給Linux用戶使用,這樣,也使得更多的文件“吞噬”著硬盤空間。作為一種優(yōu)秀的開源操作系統(tǒng),如何高效地管理系統(tǒng)中的軟件是一個(gè)很重要的問題。Linux提供了多種方法,用戶可以根據(jù)實(shí)際情況方便地對軟件進(jìn)行管理。比如,它提供了對文件打包的功能,用戶可以使用其將若干文件或目錄打成一個(gè)軟件包;同時(shí),它也提供了多種文件壓縮工具,使得用戶可以對某些文件進(jìn)行壓縮,以減小文件占用的硬盤空間或方便網(wǎng)絡(luò)傳輸。本文將通過例子來介紹如何合理地利用這些方法來管理Linux系統(tǒng)中的軟件。
作者介紹:李洋,博士畢業(yè)于中科院計(jì)算所。10多年來一直從事計(jì)算機(jī)網(wǎng)絡(luò)信息安全研發(fā)工作,曾主持和參與多項(xiàng)國家重點(diǎn)項(xiàng)目以及信息安全系統(tǒng)和企業(yè)信息安全系統(tǒng)的研發(fā)工作。具有Linux系統(tǒng)應(yīng)用、管理、安全及內(nèi)核的研發(fā)經(jīng)驗(yàn),擅長網(wǎng)絡(luò)安全技術(shù)、協(xié)議分析、Linux系統(tǒng)安全技術(shù)、Linux系統(tǒng)及網(wǎng)絡(luò)管理、Linux內(nèi)核開發(fā)等。
作者的博客:http://patterson.blog.51cto.com/。
一、Linux下的TAR包管理
TAR命令是在Linux下最常用的文件打包工具,可以將若干文件或若干目錄下打包成一個(gè)文件,既有利于文件管理,也方便壓縮和文件的網(wǎng)絡(luò)傳輸。TAR可以為文件和目錄創(chuàng)建檔案。利用TAR,用戶可以為某一特定文件創(chuàng)建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的文件。
1、TAR命令語法及參數(shù)選項(xiàng)
TAR命令使用語法如下:
tar [主選項(xiàng)+輔選項(xiàng)] 文件或者目錄
其中,主選項(xiàng)是必需的,表明tar命令要完成的操作,輔選項(xiàng)是輔助使用的,可以有也可以沒有。下面列出常用的主選項(xiàng),并簡要說明其功能。
- -A,--catenate,--concatenate :將若干個(gè)tar文件合并成一個(gè)tar文件
- -c,--create :創(chuàng)建一個(gè)新的tar文件
- -d,--diff,--compare:比較tar文件或文件系統(tǒng)的不同之處
- --delete:從tar文件中刪除文件,但不能磁帶文件刪除
- -r,--append:在tar文件尾部追加文件
- -t,--list:顯示tar文件內(nèi)容
- -u,--update:更新tar文件
- -x,--extract,--get:從tar文件中取出文件
每次使用tar命令時(shí),上述8個(gè)命令參數(shù)選項(xiàng)必須選擇一個(gè),用以指明操作類型。
2、創(chuàng)建tar文件
創(chuàng)建一個(gè)tar文件要使用主參數(shù)選項(xiàng)c,并指明創(chuàng)建tar文件的文件名。下面假設(shè)當(dāng)前目錄下有smart和xplns兩個(gè)子目錄以及cpuinfo.txt,smart.txt,tar.txt ,tar_create.txt四個(gè)文件,smart目錄下有smartsuite-2.1-2.i386.rpm文件,xplns目錄下有xplns-cat-3.3.1-1.i386.rpm,xplns-elm-3.3.1-1.i386.rpm和xplns-img-3.3.1-1.i386.rpm三個(gè)文件。用ll –r命令顯示當(dāng)前目錄下文件信息如下:
#ll -r ./* -rwx------1 root root 7433 10月 12 21:25 ./tar.txt -rwx------1 root root 226 10月 12 21:25 ./tar_create.txt -rwx------1 root root 26 10月 12 21:25 ./smart.txt -rwx------1 root root 26 10月 12 21:25 ./cpuinfo.txt ./xplns: 總用量 1613 -rwx------1 root root 793828 10月 12 21:26 xplns-img-3.3.1-1.i386.rpm -rwx------1 root root 572471 10月 12 21:26 xplns-elm-3.3.1-1.i386.rpm -rwx------1 root root 1933576 10月 12 21:26 xplns-cat-3.3.1-1.i386.rpm ./smart: 總用量 17 -rwx------1 root root 34475 10月 12 21:25 smartsuite-2.1-2.i386.rpm
若要在該目錄下將所有文件打包成gong.tar文件,可以使用如下命令:
//參數(shù)c指明創(chuàng)建tar,參數(shù)f指明是創(chuàng)建文件,參數(shù)v指明顯示處理詳細(xì)過程 # tar cvf gong.tar ./* ./cpuinfo.txt ./smart/ ./smart/smartsuite-2.1-2.i386.rpm ./smart.txt ./tar_create.txt ./tar.txt ./xplns/ ./xplns/xplns-cat-3.3.1-1.i386.rpm ./xplns/xplns-elm-3.3.1-1.i386.rpm ./xplns/xplns-img-3.3.1-1.i386.rpm //顯示當(dāng)前目錄下所有文件,從顯示結(jié)果可以發(fā)現(xiàn),當(dāng)前目錄下多了一個(gè)gong.tar文件,就是由剛才tar命令生成的 #ll 總用量 4927 -rwx------ 1 root root 3358720 10月 12 19:35 cpuinfo.txt -rwx------ 1 root root 6717440 10月 12 19:36 gong.tar drwx------ 1 root root 0 10月 8 21:37 smart -rwx------ 1 root root 26 10月 8 21:37 smart.txt -rwx------ 1 root root 226 10月 12 19:32 tar_create.txt -rwx------ 1 root root 7433 10月 12 17:13 tar.txt drwx------ 1 root root 4096 10月 12 19:34 xplns
3、顯示tar文件內(nèi)容
對于一個(gè)已存在的tar文件,用戶可能想了解其內(nèi)容是由哪些文件和目錄打包而來的,這就要用帶t參數(shù)的tar命令。例如對于上述產(chǎn)生的gong.tar文件,若欲顯示其文件內(nèi)容,可使用如下命令:
# tar tf gong.tar ./cpuinfo.txt ./smart/ ./smart/smartsuite-2.1-2.i386.rpm ./smart.txt ./tar_create.txt ./tar.txt ./xplns/ ./xplns/xplns-cat-3.3.1-1.i386.rpm ./xplns/xplns-elm-3.3.1-1.i386.rpm ./xplns/xplns-img-3.3.1-1.i386.rpm
4、向tar文件中添加一個(gè)文件
欲向已存在的一個(gè)tar文件中添加一個(gè)文件或目錄,可以使用帶-r主選項(xiàng)參數(shù)的tar命令。例如欲向上面所述產(chǎn)生的gong.tar文件中添加tar_t.txt文件,可以使用如下步驟:
(1)在文件gong.tar圖標(biāo)上右鍵單擊鼠標(biāo),系統(tǒng)顯示快捷菜單。
(2)單擊【添加到壓縮文件】菜單項(xiàng),系統(tǒng)將顯示【添加文件或文件夾】對話框,在對話框中輸入欲加入的文件或文件夾,或者單擊【瀏覽(B)】按鈕選擇某個(gè)文件或文件夾,若選中【僅添加新文件(N)】復(fù)選框,則當(dāng)添加的文件或文件夾在tar文件中已經(jīng)存在時(shí),系統(tǒng)并不加入該文件或文件夾。單擊【增加(A)】按鈕即可完成添加工作。
5、從tar文件中取出文件
在已經(jīng)存在的tar文件中解包,可以使用帶主選項(xiàng)參數(shù)-x的tar命令實(shí)現(xiàn)。下面以gong.tar文件為例,說明帶主選項(xiàng)參數(shù)-x的tar命令的用法。
//首先顯示當(dāng)前目錄下文件列表,由顯示結(jié)果可見,當(dāng)前目錄下只有一個(gè)文件gong.tar。 #ll 總用量 3280 -rwx------ 1 root root 6717440 10月 12 21:12 gong.tar //對當(dāng)前目錄下gong.tar文件解包 #tar –x gong.tar //再顯示解包后當(dāng)前目錄下所有文件,由顯示結(jié)果可以看出,tar文件中所有文件均已解出 #ll 總用量 4927 -rwx------ 1 root root 3358720 10月 12 21:13 cpuinfo.txt -rwx------ 1 root root 6717440 10月 12 21:12 gong.tar drwx------ 1 root root 0 10月 12 21:13 smart -rwx------ 1 root root 26 10月 12 21:13 smart.txt -rwx------ 1 root root 226 10月 12 21:13 tar_create.txt -rwx------ 1 root root 7433 10月 12 21:13 tar.txt drwx------ 1 root root 4096 10月 12 21:13 xplns
#p#
二、Linux下常用的壓縮工具
對文件進(jìn)行壓縮的目的有兩個(gè):一是可以減少存儲(chǔ)空間,二是通過網(wǎng)絡(luò)傳輸文件時(shí),可以減少傳輸?shù)木W(wǎng)絡(luò)開銷。Linux下的壓縮工具有很多,下面列出Linux下常用的壓縮工具及其產(chǎn)生文件的后綴:
- gzip/gunzip:后綴名為.gz
- compress/uncompress:后綴名為.Z
- zip/unzip:后綴名為.zip
- bzip2/bunzip2:后綴名為.bz2
- lha:后綴名為.lzh
Linux下壓縮工具中最常用的包括gzip、zip和bzip2三種,下面分別講述這三種最常用的壓縮工具。
1、gzip壓縮工具
gzip是Linux最常用的軟件壓縮工具,在Linux終端輸入man gzip命令降顯示gzip的幫助文檔。
該命令的使用形式為:gzip [選項(xiàng)] 壓縮或解壓縮的文件名。
該命令的主要參數(shù)選項(xiàng)有:
- -c:將輸出寫到標(biāo)準(zhǔn)輸出上,并保留原有文件。
- -d:將壓縮文件解壓。
- -l:對每個(gè)壓縮文件,顯示字段:壓縮文件的大小,未壓縮文件的大小,壓縮比和未壓縮文件的名字。
- -r:遞歸地查找指定目錄并壓縮其中的所有文件或者是解壓縮。
- -t:測試,檢查壓縮文件是否完整。
- -v:對每一個(gè)壓縮和解壓的文件,顯示文件名和壓縮比。
- -num:用指定的數(shù)字num調(diào)整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統(tǒng)默認(rèn)值為6。
(1)用gzip壓縮文件:下面給出使用gzip命令壓縮文件的例子:
//顯示當(dāng)前目錄先所有文件 #ll 總用量 5 -rwx------ 1 root root 26 10月 13 22:16 smart.txt -rwx------ 1 root root 226 10月 13 22:16 tar_create.txt -rwx------ 1 root root 7433 10月 13 22:16 tar.txt //壓縮當(dāng)前目錄下的所有文件,并且顯示壓縮比,顯示已經(jīng)替代原來的文件 #gzip -v * //-v參數(shù)表明顯示壓縮比和文件名 smart.txt: 0.0% -- replaced with smart.txt.gz tar_create.txt: 43.8% -- replaced with tar_create.txt.gz tar.txt: 68.3% -- replaced with tar.txt.gz //再顯示當(dāng)前目錄所有文件,可以發(fā)現(xiàn)所有文件都壓縮成了gz文件 #ll 總用量 3 -rwx------ 1 root root 54 10月 13 22:17 smart.txt.gz -rwx------ 1 root root 160 10月 13 22:17 tar_create.txt.gz -rwx------ 1 root root 2385 10月 13 22:17 tar.txt.gz
注意:gzip只能對單個(gè)文件壓縮,不能像Winzip和Winrar一樣,可以將多個(gè)文件壓縮成一個(gè).zip文件或.rar文件。正因?yàn)槿绱?,Linux才提供了tar命令,用于將若干文件或文件夾打包成一個(gè)文件,然后再壓縮成一個(gè).gz文件。
(2)用gzip解壓縮文件:下面給出用gzip解壓縮文件的例子:
//對當(dāng)前目錄下所有壓縮的文件解壓,并列出詳細(xì)的信息。 #gzip -dv * smart.txt.gz: 0.0% -- replaced with smart.txt tar_create.txt.gz: 43.8% -- replaced with tar_create.txt tar.txt.gz: 68.3% -- replaced with tar.txt //再顯示當(dāng)前目錄下的所有文件,從顯示結(jié)果看出,所有的.gz壓縮文件都已經(jīng)解壓縮了 #ll 總用量 5 -rwx------ 1 root root 26 10月 13 22:22 smart.txt -rwx------ 1 root root 226 10月 13 22:22 tar_create.txt -rwx------ 1 root root 7433 10月 13 22:22 tar.txt
(3)顯示壓縮文件的內(nèi)容信息:可以用帶-l參數(shù)的gzip命令顯示gz文件的內(nèi)容。這只是顯示文件內(nèi)容,并不實(shí)際解壓縮文件。
# gzip -l * compressed uncompressed ratio uncompressed_name 54 26 0.0% smart.txt 160 226 43.8% tar_create.txt 2385 7433 68.3% tar.txt 2599 7685 66.5% (totals)
(4)在tar命令中嵌入壓縮命令:在tar命令中就可以直接嵌入gzip命令,從而直接將若干文件或文件夾處理成一個(gè).tar.gz文件。在這個(gè)處理過程中,系統(tǒng)先將若干文件或文件夾打包成.tar,然后將生成的.tar文件壓縮成.tar.gz文件。先舉例如下:
//將當(dāng)前目錄下所有文件打包并壓縮成gong.tar.gz并顯示處理進(jìn)度 # tar cvfz gong.tar.gz ./* ./smart.txt ./tar_create.txt ./tar.txt //再顯示當(dāng)前目錄下所有文件,從顯示結(jié)果可以看出,已經(jīng)產(chǎn)生了gong.tar.gz文件 #ll 總用量 7 -rwx------ 1 root root 2704 10月 13 22:59 gong.tar.gz -rwx------ 1 root root 26 10月 13 22:51 smart.txt -rwx------ 1 root root 226 10月 13 22:51 tar_create.txt -rwx------ 1 root root 7433 10月 13 22:51 tar.txt
#p#
2、zip/unzip命令
zip程序位于/usr/bin目錄中,可將文件壓縮成.zip文件以節(jié)省硬盤空間,而當(dāng)需要的時(shí)候又可將壓縮文件解開。unzip命令用于將壓縮文件解壓。
(1)用zip命令壓縮文件或文件夾
在Linux下輸入man zip,系統(tǒng)顯示zip的幫助文檔。
zip命令的使用形式為:zip [選項(xiàng)] 壓縮后文件名 待壓縮文件或文件夾。
其中:參數(shù)選項(xiàng)表明要完成的操作類型,壓縮后的文件名是某個(gè)合法的文件名,其后綴為zip,待壓縮文件或文件夾指明須要進(jìn)行壓縮的文件或文件夾,可以是多個(gè)文件或文件夾。zip命令的參數(shù)選項(xiàng)如下:
- -1:最快壓縮,壓縮率最差。
- -9:最大壓縮,壓縮率最佳。
- -b:暫存文件的路徑。該參數(shù)常用于zip文件存在而硬盤現(xiàn)有空間不足時(shí)。
- -c:替新增或更新的文件增加一行注解。
- -d:從zip文件移出一個(gè)文件。
- -D:不要在zip文件中儲(chǔ)存文件的目錄信息。
- -f:以新文件取代現(xiàn)有文件。
- -F:修復(fù)已經(jīng)損毀的壓縮文件。
- -g:將文件壓縮附加到zip文件中。
- -h:顯示輔助說明。
- -i:指定要加入的某些特定文件。
- -j:只儲(chǔ)存文件的名稱,不含目錄。
- -m:將特定文件移入zip文件中,并且刪除特定文件。
- -n:不壓縮特定擴(kuò)展名的文件。
- -o:將zip文件的時(shí)間設(shè)成最后修正zip文件的時(shí)間。
- -q:安靜模式,不會(huì)顯示相關(guān)訊息和提示。
- -r:包括子目錄。
- -t:只處理mmddyy日期以后的文件。
- -T:測試zip文件是否正常。
- -u:只更新改變過的文件和新文件。
- -v:顯示版本信息或詳細(xì)資料。
- -x:不須要壓縮的文件。
- -y:將symbolic link壓縮,而不是壓縮所連結(jié)到的文件。
- -z:為zip文件增加注解。
- -#:設(shè)定壓縮速度。-0表示不壓縮,-1表示最快速度的壓縮,-9表示最慢速度的壓縮(最佳化的壓縮)。預(yù)設(shè)值為-6。
- ? -@:從標(biāo)準(zhǔn)輸入讀取文件名稱。
注意:使用zip命令可以將許多文件壓縮成一個(gè)文件,這與gzip是有區(qū)別的。
下面給出使用該命令壓縮文件或文件夾的例子:
//顯示當(dāng)前目錄下所有文件和文件夾 #ll 總用量 9 drwx------ 1 root root 4096 10月 15 19:45 gzip drwx------ 1 root root 0 10月 12 21:25 smart -rwx------ 1 root root 26 10月 13 22:51 smart.txt -rwx------ 1 root root 226 10月 13 22:51 tar_create.txt -rwx------ 1 root root 7433 10月 13 22:51 tar.txt drwx------ 1 root root 4096 10月 13 22:13 xplns //將當(dāng)前目錄下的所有文件和文件夾全部壓縮成gong.zip壓縮文件,-r表示遞歸壓縮子目錄下所有文件 # zip -r gong.zip ./* adding: gzip/ (stored 0%) adding: gzip/gong.tar.gz (stored 0%) adding: smart/ (stored 0%) adding: smart/smartsuite-2.1-2.i386.rpm (deflated 5%) adding: smart.txt (stored 0%) adding: tar_create.txt (deflated 44%) adding: tar.txt (deflated 68%) adding: xplns/ (stored 0%) adding: xplns/xplns-cat-3.3.1-1.i386.rpm.gz (deflated 0%) adding: xplns/xplns-elm-3.3.1-1.i386.rpm.gz (deflated 0%) adding: xplns/xplns-img-3.3.1-1.i386.rpm.gz (deflated 0%) //再顯示當(dāng)前目錄下所有文件,可以發(fā)現(xiàn)壓縮文件gong.zip已經(jīng)生成 #ll 總用量 1621 -rwx------1 root root 3301222 10月 15 19:49 gong.zip drwx------1 root root 4096 10月 15 19:45 gzip drwx------1 root root 0 10月 12 21:25 smart -rwx------1 root root 26 10月 13 22:51 smart.txt -rwx------1 root root 226 10月 13 22:51 tar_create.txt -rwx------1 root root 7433 10月 13 22:51 tar.txt drwx------1 root root 4096 10月 13 22:13 xplns
用帶-v參數(shù)選項(xiàng)可以查看zip文件的內(nèi)容,這點(diǎn)類似于帶t參數(shù)選項(xiàng)的tar命令。只不過前者用于顯示壓縮的zip文件的內(nèi)容,后者用于顯示tar文件的內(nèi)容。與帶t參數(shù)選項(xiàng)的tar命令類似,帶v參數(shù)選項(xiàng)的zip命令實(shí)際上并不解壓縮文件。用帶-v參數(shù)選項(xiàng)的zip命令舉例如下:
//顯示當(dāng)前目錄下所有文件,從顯示結(jié)果可以看出,當(dāng)前目錄下只有一個(gè)gong.zip文件 # ll 總用量 1612 -rwx------ 1 root root 3301222 10月 15 19:49 gong.zip //查看gong.zip文件的內(nèi)容 # zip -v gong.zip zip info: local extra (21 bytes) != central extra (13 bytes): gzip/ zip info: local extra (21 bytes) != central extra (13 bytes): gzip/gong.tar.gz zip info: local extra (21 bytes) != central extra (13 bytes): smart/ zip info: local extra (21 bytes) != central extra (13 bytes): smart.txt zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt zip info: local extra (21 bytes) != central extra (13 bytes): xplns/
用帶-d參數(shù)選項(xiàng)的zip命令可以從zip壓縮文件中刪除某個(gè)文件,而使用帶-m的zip命令可以向zip壓縮文件添加某個(gè)文件,對帶-d和-m參數(shù)選項(xiàng)的zip命令舉例如下:
# zip -v gong.zip //顯示壓縮文件gong.zip的文件內(nèi)容 zip info: local extra (21 bytes) != central extra (13 bytes): free.txt zip info: local extra (21 bytes) != central extra (13 bytes): smart.txt zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt //刪除壓縮文件中smart.txt文件 # zip -d gong.zip smart.txt deleting: smart.txt //再顯示壓縮文件內(nèi)容,可以發(fā)現(xiàn)文件刪除成功 # zip -v gong.zip zip info: local extra (21 bytes) != central extra (13 bytes): free.txt zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt //向壓縮文件中g(shù)ong.zip中添加rpm_info.txt文件 # zip -m gong.zip ./rpm_info.txt adding: rpm_info.txt (deflated 75%) //再顯示壓縮文件內(nèi)容,可以發(fā)現(xiàn)文件添加成功 # zip -v gong.zip zip info: local extra (21 bytes) != central extra (13 bytes): free.txt zip info: local extra (21 bytes) != central extra (13 bytes): tar_create.txt zip info: local extra (21 bytes) != central extra (13 bytes): tar.txt zip info: local extra (21 bytes) != central extra (13 bytes): rpm_info.txt
(2)用unzip命令解壓縮文件
unzip命令用于擴(kuò)展名為zip的壓縮文件的解壓縮,同時(shí),Windows下用壓縮軟件Winzip壓縮的文件在Linux系統(tǒng)下也可以用unzip命令解壓縮。unzip命令的語法如下:
unzip [參數(shù)選項(xiàng)] 壓縮文件名.zip。
所有參數(shù)選項(xiàng)如下:
- -x:文件列表:解壓縮文件,但不包括指定的file文件。
- -v:查看壓縮文件目錄,但不解壓縮。
- -t:測試文件有無損壞,但不解壓縮。
- -d:目錄:把壓縮文件解壓縮到指定目錄下。
- -z:只顯示壓縮文件的注解。
- -n:不覆蓋已經(jīng)存在的文件。
- -o:覆蓋已存在的文件且不要求用戶確認(rèn)。
- -j:不重建文檔的目錄結(jié)構(gòu),把所有文件解壓縮到同一目錄下。
unzip命令的常用用法有:
簡單解壓縮文件:將壓縮文件解壓縮到當(dāng)前目錄下。
//顯示當(dāng)前目錄下所有文件,從顯示結(jié)果可以發(fā)現(xiàn)當(dāng)前目錄下只有一個(gè)文件gong.zip # ll 總用量 7 -rwx------ 1 root root 13512 10月 15 20:44 gong.zip //將gong.zip解壓縮到當(dāng)前目錄 # unzip gong.zip Archive: gong.zip inflating: free.txt inflating: tar_create.txt inflating: tar.txt inflating: rpm_info.txt //再顯示當(dāng)前目錄下所有文件,從顯示結(jié)果可以發(fā)現(xiàn),gong.zip壓縮文件中所有文件已經(jīng)成功解壓縮到當(dāng)前目錄 # ll 總用量 32 -rwx------ 1 root root 230 10月 15 21:03 free.txt -rwx------ 1 root root 13512 10月 15 20:44 gong.zip -rwx------ 1 root root 40833 10月 15 21:03 rpm_info.txt -rwx------ 1 root root 226 10月 15 21:03 tar_create.txt -rwx------ 1 root root 7433 10月 15 21:03 tar.txt
解壓縮文件到指定目錄:將壓縮文件解壓縮到指定的目錄下,如果已有相同的文件存在,unzip命令不覆蓋原來的文件。
//解壓縮當(dāng)前目錄下的text.zip壓縮文件,-n參數(shù)選項(xiàng)指明不覆蓋原有文件,-d /tmp指明將文件解壓縮到/tmp目錄下 #unzip -n text.zip -d /tmp //查看壓縮文件目錄:類似于帶-v參數(shù)的zip命令,只顯示壓縮文件內(nèi)容,并不實(shí)際解壓縮文件。 #unzip -v text.zip //顯示當(dāng)前目錄下text.zip壓縮文件內(nèi)容
#p#
3、bzip2命令
bzip2是一個(gè)無損壓縮軟件,具有高質(zhì)量的數(shù)據(jù)壓縮能力。它能將文件壓縮到原來的10%到15%,而且壓縮速度和解壓縮速度都非常高,因此在Linux下得到廣泛使用。
bzip2從命令行讀入文件名和參數(shù),每個(gè)文件都被名為“原始文件名.bz2”的壓縮文件替換。每個(gè)壓縮文件具有與原文件相同的修改時(shí)間和權(quán)限,如果可能的話,還具有相同的屬主,因此在解壓縮時(shí)這些特性將正確地恢復(fù)。
(1)bzip2命令參數(shù)選項(xiàng)
- -c:將數(shù)據(jù)壓縮或解壓縮至標(biāo)準(zhǔn)輸出。
- -d:強(qiáng)制解壓縮。bzip2、bunzip2和bzcat實(shí)際上是同一個(gè)程序,進(jìn)行何種操作將根據(jù)程序名確定。指定該選項(xiàng)后將不考慮這一機(jī)制,強(qiáng)制bzip2解壓縮。
- -z:和-d選項(xiàng)類似,強(qiáng)制進(jìn)行壓縮操作,而不管輸入的是哪個(gè)程序名。
- -t:檢查指定文件的完整性,但并不對其解壓縮。實(shí)際上將對數(shù)據(jù)進(jìn)行實(shí)驗(yàn)性的解壓縮操作,而不輸出結(jié)果。
- -f:強(qiáng)制覆蓋輸出文件。通常bzip2不會(huì)覆蓋已經(jīng)存在的文件。該選項(xiàng)還強(qiáng)制bzip2打破文件的硬鏈接,默認(rèn)情況下bzip2不會(huì)這么做。
- -k:在壓縮或解壓縮時(shí)保留輸入文件(不刪除這些文件)。
- ? -s:在壓縮、解壓縮及檢查時(shí)減少內(nèi)存用量。采用一種修正的算法進(jìn)行壓縮和測試,每個(gè)數(shù)據(jù)塊僅需要2.5個(gè)字節(jié)。這意味著任何文件都可以在2300k的內(nèi)存中進(jìn)行解壓縮,盡管速度只有通常情況下的一半。在壓縮時(shí),-s將選定200k的塊長度,內(nèi)存用量也限制在200k左右,代價(jià)是壓縮率會(huì)降低。總之,如果機(jī)器的內(nèi)存較少(8兆字節(jié)或更少),可對所有操作都采用-s選項(xiàng)。
- -q:壓制不重要的警告信息。屬于I/O錯(cuò)誤及其他嚴(yán)重事件的信息將不會(huì)被壓制。
- -v:詳盡模式--顯示每個(gè)被處理文件的壓縮率。命令行中更多的-v選項(xiàng)將增加詳細(xì)的程度,使bzip2顯示出許多主要用于診斷目的信息。
- -L:顯示軟件版本,許可證條款及條件。
- -1to-9:在壓縮時(shí)將塊長度設(shè)為100k、200k.、900k。對解壓縮沒有影響。
(2)用bzip2命令壓縮文件
//顯示當(dāng)前目錄下所有文件 # ll 總用量 32 -rwx------ 1 root root 230 10月 15 22:06 free.txt -rwx------ 1 root root 13512 10月 15 22:06 gong.zip -rwx------ 1 root root 40833 10月 15 22:06 rpm_info.txt -rwx------ 1 root root 226 10月 15 22:06 tar_create.txt -rwx------ 1 root root 7433 10月 15 22:06 tar.txt //用bzip2命令壓縮當(dāng)前目錄下所有文件,用bunzip2 -z * 將獲得相同的效果 #bzip2 * //再顯示當(dāng)前目錄下所有文件,從顯示結(jié)果可以看出,所有文件都壓縮成了原文件名加bz2后綴的形式 # ll 總用量 15 -rwx------ 1 root root 157 10月 15 22:06 free.txt.bz2 -rwx------ 1 root root 13824 10月 15 22:06 gong.zip.bz2 -rwx------ 1 root root 9366 10月 15 22:06 rpm_info.txt.bz2 -rwx------ 1 root root 165 10月 15 22:06 tar_create.txt.bz2 -rwx------ 1 root root 2326 10月 15 22:06 tar.txt.bz2
(3)用bunzip2命令解壓縮文件
//顯示當(dāng)前目錄下所有文件 # ll 總用量 15 -rwx------ 1 root root 230 10月 15 22:17 free.txt -rwx------ 1 root root 13824 10月 15 22:17 gong.zip.bz2 -rwx------ 1 root root 9366 10月 15 22:17 rpm_info.txt.bz2 -rwx------ 1 root root 165 10月 15 22:17 tar_create.txt.bz2 -rwx------ 1 root root 2326 10月 15 22:17 tar.txt.bz2 //用bunzip2命令解壓縮當(dāng)前目錄下所有文件,其中有一個(gè)文件free.txt不是以bz2為后綴 //從顯示結(jié)果可以看出,對free.txt文件解壓縮時(shí)報(bào)錯(cuò) # bunzip2 * bunzip2: Can't guess original name for free.txt -- using free.txt.out bunzip2: free.txt is not a bzip2 file. //再顯示當(dāng)前目錄下所有文件,從顯示結(jié)果可以看出,所有bz2文件都解壓縮成功 # ll 總用量 32 -rwx------ 1 root root 230 10月 15 22:17 free.txt -rwx------ 1 root root 13512 10月 15 22:18 gong.zip -rwx------ 1 root root 40833 10月 15 22:18 rpm_info.txt -rwx------ 1 root root 226 10月 15 22:18 tar_create.txt -rwx------ 1 root root 7433 10月 15 22:18 tar.txt
【編輯推薦】
- Linux壓縮打包方法連載之一:tar命令
- Linux壓縮打包方法連載之二:gzip, zcat 命令
- Linux壓縮打包方法連載之三:bzip2, bzcat 命令
- Linux壓縮打包方法連載之四:compress 命令
- Linux壓縮打包方法連載之五:dd命令
- Linux壓縮打包方法連載之六:cpio 命令