在Solaris環境下,
壓縮的過程 打包tar >> 壓縮gzip
解壓的過程 解壓gzip >> 解包tar
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(註:tar是打包,不是壓縮!)
.gz
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓縮:gzip FileName.tar
.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環境變數指定的目錄也可以):
# 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環境變數指定的目錄也可以):
# 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環境變數指定的目錄也可以):
# cp sEx /usr/bin/
備份和恢複工具 + 生產力(Solaris)
tar
dd
cpio
pax
tar --建立磁帶和檔案存檔,恢複檔案和目錄
tar 命令在很多 UNIX 平台上都可找到。它是一個用於將檔案存檔到磁帶上的快速易用的工具。tar 也可以用於將多個檔案存檔為一個檔案(也就是 tar 檔案),使之可以移植到其他系統上使用。例如,如果需要,可以將整個使用者主目錄或安裝目錄複寫到單個 tar 檔案中,並在必要時將其移動到運行 HP-UX 的伺服器上。
tar 命令有很多可用的選項,但是我將只討論用於建立、提取或恢複的三個選項,並列出 tar 檔案內容的選項。
tar 命令選項
-c: 建立 tar 檔案
-t: 列出 tar 的內容
-x: 提取或恢複 tar 檔案內容
-v: Verbose (顯示 tar 所採取的動作)
tar 命令的基本文法如下:
tar <options>; <tar filename>; <file list>;
注意: 有時您將在一些 tar 命令例子中看到在選項前使用了破折號,這對於 tar 的正確運行不是必需的。
建立新的 tar 檔案:
% tar
cvf filename.tar filelist
在這裡,filename.tar 是 tar 檔案的名字。filelist 是想要備份的檔案清單。可以使用萬用字元指定列表。
列出 tar 檔案的內容:
% tar tvf filename.tar filelist
在這裡, filename.tar 可以被一個磁帶裝置檔案所取代。例如:
% tar cvf filename.tar /dev/rmt/0mn
提取 tar 檔案內容到當前位置:
% tar xvf filename.tar
dd -- 轉換和複製檔案
dd 命令通常用於將整個檔案系統複製到另一個檔案系統,或者將硬碟的內容複寫到另一塊硬碟。dd 還可以用於將檔案系統複製到磁帶,反之亦可。dd 是一個相對較快的複製工具:它在傳輸資料時為資料建立一個精準的副本(位元組對位元組)。dd 可使用幾個選項來指定緩衝區大小、塊大小和資料轉換。其基本的文法是:
dd <inputfile>;= <outputfile>;= options
下面的例子將整個 c0t1d0s2 的內容複寫到第二塊磁碟(c0t4d0s2)上,使用的塊大小是 128。如果您有可用的剩餘磁碟空間並且希望有準備好的備份磁碟以在災難發生時換出,這會工作得極佳。在這個例子中指定了 slice 2,因為它在 Solaris 作業系統中代表整個磁碟。
% dd if=/dev/rdsk/c0t1d0s2 of=/dev/rdsk/c0t4d0s2 bs=128
要將一台磁帶裝置上的內容複寫到另一台上,使用下面例子所示的命令。(注意:必須有兩台可用磁碟機。)
% dd if=/dev/rmt/#1drive of=/dev/rmt/#2drive
有關 dd 的 man 頁面給出了很多其他可用的選項。我建議您查看 dd 的 man 頁面並且閱讀 Notes 小節。在那裡,您將發現 dd 的一些限制,以及在從磁碟裝置複製資料時使用裸字元裝置的一個提示。
cpio --拷入和拷出檔案存檔
cpio 代表“拷入,拷出”,用於從一個位置複製資料到另一個位置。使用 cpio 與使用其他 UNIX 工具 + 生產力相比更具有優勢,包括:
cpio 可以備份和恢複單獨的檔案而不只是所有檔案系統。
cpio 在檔案上建立的檔案頭資訊較小,導致備份量較少。
tar 被限制在單台磁帶裝置上,cpio 則不同,它可以跨越多個磁帶。
cpio 運行在三種模式中: copy-out ( cpio -o)、 copy-in ( cpio -i)和 pass 模式 ( cpio -p),最後一種模式用於從磁碟上(而不是磁帶)的一個位置複製檔案到另一個位置。下節列出了幾個常用的選項。
cpio 命令選項
除非另行指出,否則這些選項適用於 copy-out 和 copy-in 模式。
-c: 以 ASCII 格式寫入頭資訊, 為了便於移植。
-d: 建立所需的目錄。
-v: Verbose (處理時報告檔案名稱)。
-V: 與前面相同, 除了為每個複製的檔案顯示一個 “.”。
-u: 用於無條件複製;舊檔案將不會替換較新的檔案。
-m: 保留以前的檔案修改時間。該選項在複製目錄時不起作用。
要將一個目錄及其子目錄複製到磁帶上,使用下面的例子:
% ls -R | cpio -oVc >; /dev/rmt/0
上面的例子將把當前所在的目錄以及其中的所有子目錄複製到位於 /dev/rmt/0 的磁帶裝置。-o 指定處於 copy-out 模式。-V 選項代表 verbose 並將顯示.作為進度指示符。-c 選項建立一個 ASCII 標頭檔。
要將內容從磁帶複製回目錄,使用下面的例子:
% cpio -icvD < /dev/rmt/0
在上面的例子中,我們的命令將使用多個選項恢複磁帶上的資料內容。-i 選項使工作處於 copy-in 模式。-d 選項在將資料複製回來的時候建立所有所需的目錄。
利用 cpio 備份檔案(Copy-Out 模式)
利用 cpio 有多種方法來備份檔案,我在這裡將介紹其中的兩種。
% cpio -ov list >; /dev/rmt/0
這個命令從檔案“list”讀取內容並將其複製到磁帶裝置。
% cpio -o /dev/rmt/0
這個命令允許您指定要備份的檔案。輸入檔案名稱後,按 Ctrl+D 鍵執行該命令。下面是一個例子:
% cpio -o >; /dev/rmt/0
filename.txt
file1name.txt
利用 cpio 恢複檔案(Copy-In 模式)
利用 cpio 的恢複過程與備份檔案的過程類似。只是不使用 -o 指定 copy-out 模式,我們使用 -i 模式將資料從磁帶複製回來。
% cpio -icvum < /dev/rmt/0
這個例子利用了與先前使用的類似選項,還有 -m 選項,它將保留檔案的修改時間。
使用下面的例子查看磁帶存檔上的內容列表:
% cpio -ict < /dev/rmt/0
Pass 模式
Pass 模式可用於在磁碟裝置上複製目錄。它在磁帶上將無法工作。當要複製檔案和目錄時,,cpio 要優於 cp,因為它保留了檔案的所有權和修改時間。
下面的例子將所有檔案和目錄複寫到一個稱為 bkup 的目錄中:
% ls * | cpio -pdumv bkup
pax -- 可移植存檔互換(提取、寫入和列出封存檔案)
pax 工具 + 生產力可以在很多與 POSIX 相容的 UNIX 系統上找到。Solaris 作業系統從版本 2.5 開始就包含它了。pax 具有讀寫 tar 和 cpio 存檔的能力。根據您選擇如何使用 pax,它將運行於 4 種模式之一:讀、寫、列表和複製。要設定模式,您可以使用 -r、-w 、這兩者的組合或者根本不用選項。
pax 模式選項
選項 模式 描述
-r 讀 單個 -r 選項只是讀模式,這允許您從磁碟或磁帶讀檔案
無 列表 如果 -r 或 -w 選項都沒有, pax 將被置於列表模式。它將從磁碟、磁帶或標準輸入裝置讀檔案並且顯示檔案和目錄階層
-w 寫 單個 -w 選項讓 pax 處於寫入模式。 它將依照 -x 選項指定的格式將目前的目錄和其中的所有子目錄複製到獨立的輸出裝置。(參見下面的例子)。如果沒有指定檔案,可以從標準的輸入裝置上讀入一個列表,一次一個檔案
-rw 複製 同時指定 -r 和 -w 選項,所選擇的檔案被複製到目的目錄
pax 命令選項
選項 描述
-a 將檔案附加到先前寫入的存檔的末尾
-b 塊大小。 塊大小最低為 512 位元組, 或者以 512 為增量的更大塊,最大 32256 位元組
-c 匹配所有檔案或存檔成員,除了那些用 Pattern 和檔案運算元指定的
-f <archive>; 指定 <archive>; 作為輸入或輸出存檔的路徑名。一個存檔可以跨越多台裝置。pax 提示您在存檔中的下一裝置的路徑名
-i 互動地重新命名檔案或存檔成員。 用於通過標準輸入為可選擇性的寫或複製提供檔案名稱
-p <string>; 指定在提取或存檔一個檔案時所用的一個或多個檔案特徵選項a 不保留檔案訪問時間
e 保留一切:使用者識別碼、組ID、檔案模式位、檔案訪問時間和修改時間。
m 不保留檔案修改時間
o 保留使用者 ID 和組 ID
P 保留檔案模式位
v Verbose 模式
-x 指定輸出存檔格式。預設格式是 ustar。 pax 可以支援 cpio、 tar、 bcpio、 ustar、 sv4crc 和 sv4cpio
ufsdump命令
對系統管理員而言,ufsdump命令很有用,可對整個檔案系統做完全或增量轉儲.
完全轉儲是對整個檔案系統做備份.在較長的間隔做一次,如一星期或一月.
增量轉儲是對新建立或修改的檔案進行備份.增量轉儲更頻繁一些,可能一天一次.
ufsdump命令提供了不同等級的轉儲,從0至9.轉儲等級用來確定對哪些檔案備份.0級指定完全轉儲,1至9指定不同等級的增量轉儲.例如,增量轉儲(1等級)將對在上一次低等級 (0級)轉儲後修改或建立的檔案進行備份.對檔案系統作備份時,應將系統轉至運行等級S.
如系統在運行等級3時,檔案可能正在使用,於是可能造成無效備份.
例子:
# ufsdump 0uf /dev/rmt/0 /export/home
選項及參數:
0
指定0級(完全)轉儲.
u
更新檔案/etc/dumpdates,以記錄成功的轉儲.
f
與下面的/dev/rmt/0參數一起確定轉儲的磁帶裝置.
/dev/rmt/0
轉儲的磁帶裝置.
/export/home
指定要轉儲的檔案系統.
ufsrestore命令
ufsrestore命令從備份磁帶上拷貝檔案至目前的目錄下.
ufsrestore命令可用於重載轉儲好的整個檔案系統或備份帶上的單個或多個檔案.
ufsrestore命令的選項用來指定磁帶裝置名稱和被恢複檔案的路徑名.
恢複過程
用ufsrestore命令按以下步驟恢複一個檔案:
# cd /newdir
# ufsrestore tuf /dev/rmt/0
gzip 命令
文法:gzip [選項] 壓縮(解壓縮)的檔案名稱
該命令的各選項含義如下:
-c 將輸出寫到標準輸出上,並保留原有檔案。
-d 將壓縮檔解壓。
-l 對每個壓縮檔,顯示下欄欄位:
壓縮檔的大小;未壓縮檔的大小;壓縮比;未壓縮檔的名字
-r 遞迴式地尋找指定目錄並壓縮其中的所有檔案或者是解壓縮。
-t 測試,檢查壓縮檔是否完整。
-v 對每一個壓縮和解壓的檔案,顯示檔案名稱和壓縮比。
-num 用指定的數字 num 調整壓縮的速度,-1 或 --fast 表示最快壓縮方法(低壓縮比),
-9 或--best表示最慢壓縮方法(高壓縮比)。系統預設值為 6。
e.g.
gzip *
% 把目前的目錄下的每個檔案壓縮成 .gz 檔案。
gzip -dv *
% 把目前的目錄下每個壓縮的檔案解壓,並列出詳細的資訊。
gzip -l *
% 詳細顯樣本1中每個壓縮的檔案的資訊,並不解壓。
gzip usr.tar
% 壓縮tar備份檔案 usr.tar,此時壓縮檔的副檔名為.tar.gz。
Solaris下的tar沒有和gzip結合起來,不像Linux的tar有z命令。如果希望tar的同時也能壓縮或者解壓可以這樣寫:
打包壓縮
tar cvf - testfile | gzip > testfile.tar.gz
解包
gunzip -c testfile.tar.gz | tar xvf