?? unix打包命令.txt
字號:
Unix下打包命令的使用
在DOS或Windows下,有各種壓縮和解壓縮工具軟件,其主要功能是將一目錄下的眾多文檔或子目錄打包并壓縮成一個文檔,便于備份、組織和管理。而在Unix系統中,卻無此類能打包并同時壓縮的工具。
本人在Unix系統業務使用(特別是數據管理和備份)中,經過一番研究、整理后,充分利用Unix系統本身的命令tar、cpio和compress等來做到打包和壓縮,使之充當類似DOS下的壓縮軟件,同時在Unix系統中亦具備通用性。
在Unix系統中,是先通過cpio或tar將眾多的文檔打包成一個文檔庫后,再用compress將文檔庫壓縮來達到目的的。下面分別以cpio和tar來說明使用的方法和步驟。
一、cpio
1.文檔或目錄打包。
打包有如下多種情況:
A)含子目錄打包:
find /usr/lib -print|cpio -o〉/u0/temp1.cpio
將/usr /lib目錄下的文檔和子目錄打包成一個文檔庫為/u0/temp1.cpio。
若通過-o選項來打包整個目錄下的任何文檔和子目錄,常先利用find目錄名-print來找出任何文檔和子目錄的名稱,通過管道“|”傳給cpio打包。
B)不含子目錄的打包:
ls /usr/lib|cpio -o〉/u0/temp1.cpio
將/usr/lib目錄下的文檔(不含子目錄下的文檔)打包成一個文檔庫為/u0/temp1.cpio。
C)特定文檔打包:
可利用文本搜索命令grep和管道配合,能夠排除或選擇特定類型的文檔傳給cpio打包。如:ls /usr/lib/*.c|cpio -o〉/u0/temp1.cpio
或ls /usr/lib|grep ′\.c$′|cpio -o〉/u0/temp1.cpio
意思均為找出/usr/lib目錄下以.c結尾的文檔予以打包。
又如:ls /usr/lib|grep abcd|cpio -o〉/u0/temp1.cpio ,其意為找出/usr/lib目錄下文檔名中含有abcd字符的文檔予以打包。
ls /usr/lib|grep -v abcd|cpio -o〉/u0/temp1.cpio,其意為找出/usr/lib目錄下文檔名中不含 abcd 字符的文檔予以打包。-v選項在grep命令中的意思是排除含有字符串的行列。
如此,可充分利用Unix的管道和一些命令的強大功能來實現文檔的打包。
2.壓縮:
文檔打包完成后,即可用Unix中的compress命令(/usr/bin下)壓縮打包文檔。對一般的文本文檔,壓縮率較高,可達81%。
compress /u0/temp1.cpio則將文檔庫/u0/temp1.cpio壓縮為/u0/temp1.cpio.Z(自動添加.Z并刪除/u0/temp1.cpio )。
3.解壓:
uncompress /u0/temp1.cpio.Z則自動還原為/u0/temp1.cpio。
4.解包展開:
將按原目錄結構解包展開到當前所在目錄下。若以相對路徑打包的,當解包展開時,也是以相對路徑存放展開的文檔數據;若以絕對路徑打包的,當解包展開時,也是以絕對路徑存放展開的文檔數據。因此注意若為相對路徑,應先進入相應的目錄下再展開。
cd /u1
cpio -id〈/u0/tmp1.cpio則將/u0/temp1.cpio解壓到/u1下(這里假設temp1.cpio以相對路徑壓縮)。
若加u選項,如cpio -iud〈/u0/temp1.cpio則文檔若存在將被覆蓋,即強制覆蓋。
cpio -id〈/u0/temp1.cpio *.c 則展開其中的*.c文檔,類似于DOS系統中的Pkzip軟件中Pkunzip -d temp1.zip解包功能。
5.顯示:
cpio -it〈/u0/temp1.cpio [*.c] 顯示文檔庫內的文檔名稱,類似于DOS系統中的Pkzip軟件中Pkunzip -vbnm temp1.zip功能。
二、tar
1.文檔或目錄打包:
tar -cvf /u0/temp2.tar /usr/lib
將/usr/lib目錄下的文檔和子目錄打包成一個文檔庫為/u0/temp2.tar。
tar -cvf /u0/temp2.tar /usr/lib *.c *.f
將/usr/lib目錄下的*.c *.f等文檔(不含子目錄)打包。
注意:假如指定文檔如*.c *.f或*.*,則打包時均不含子目錄。假如指定為.或*,則含子目錄。
2.壓縮:
同上:compress /u0/temp2.tar壓縮為/u0/temp2.tar.Z
3.解壓:
uncompress /u0/temp2.tar.Z則還原為/u0/temp2.tar。
4.解包展開:
tar -xvf /u0/temp2.tar
若以相對路徑打包的,解包時,以相對路徑存放展開的文檔數據;若以絕對路徑打包的,解包時,以絕對路徑存放展開的文檔數據。
若指定展開的文檔名,須注意文檔的目錄路徑。
5.顯示:
tar -tvf /u0/temp2.tar 顯示文檔庫內的文檔名稱。當指定文檔名時,亦須注意文檔的路徑。
相對來說這兩個命令各有優缺點。
1)tar速度比cpio慢,且不能跨越兩份存儲媒體,但文檔格式幾乎在任何的Unix系統中都能通用,且使用簡便。
2)cpio則由于可通過管道功能,使得其打包時的文檔選擇、排除功能很強,且能跨越多份媒體,并能備份特別的系統文檔。
另外,壓縮命令compress比DOS下的Pkzip的壓縮率要低些。經測試,在一個目錄下527個文本文檔共15.7MB,在Unix打包后用compress壓縮,大小為 2.1MB;相同的文檔拷到DOS系統用Pkzip壓縮,則大小為1.4MB。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -