構(gòu)造tar包
tar zcvf tar包名.tar 目錄,文件列表
而解tar包
tar zxvf tar包名.tar 目錄,文件列表
解壓
語法:tar [主選項+輔選項] 文件或者目錄
使用該命令時,主選項是必須要有的,它告訴tar要做什么事情,輔選項是輔助使用的,可以選用。
主選項:
c創(chuàng)建新的檔案文件。如果用戶想備份一個目錄或是一些文件,就要選擇這個選項。
r把要存檔的文件追加到檔案文件的未尾。例如用戶已經(jīng)作好備份文件,又發(fā)現(xiàn)還有一個目錄或是一些文件忘記備份了,這時可以使用該選項,將忘記的目錄或文件追加到備份文件中。
t列出檔案文件的內(nèi)容,查看已經(jīng)備份了哪些文件。
u更新文件。就是說,用新增的文件取代原備份文件,如果在備份文件中找不到要更新的文件,則把它追加到備份文件的最后。
x從檔案文件中釋放文件。
z gzip壓縮
輔助選項:
b該選項是為磁帶機設(shè)定的。其后跟一數(shù)字,用來說明區(qū)塊的大小,系統(tǒng)預(yù)設(shè)值為20(20*512 bytes)。
f使用檔案文件或設(shè)備,這個選項通常是必選的。
k保存已經(jīng)存在的文件。例如我們把某個文件還原,在還原的過程中,遇到相同的文件,不會進(jìn)行覆蓋。
m在還原文件時,把所有文件的修改時間設(shè)定為現(xiàn)在。
M創(chuàng)建多卷的檔案文件,以便在幾個磁盤中存放。
v詳細(xì)報告tar處理的文件信息。如無此選項,tar不報告文件信息。
w每一步都要求確認(rèn)。
f這個參數(shù)確實是必選的,要不你就找不到你的tar文件
其實用的時候感覺上有些多余,既然它是必選,那就干脆固化到tar這個命令本身就是啊
可是它偏偏不是這樣的,如果你不用這個參數(shù),他就告述你什么"文件不存在"的錯誤
叫人覺得這是一個設(shè)計不良的軟件(或稱命令把)
v也很重要,通常就能看出詳細(xì)信息
所以構(gòu)造tar包通常是用命令
tar cvf tar包名.tar 目錄,文件列表
所謂目錄文件列表就是以空格形式分割文件和目錄
而解tar包通常是命令
tar xvf tar包名.tar 目錄,文件列表
下面是網(wǎng)上收錄的經(jīng)典范例
例1:把/home目錄下包括它的子目錄全部做備份文件,備份文件名為usr.tar。
$ tar cvf usr.tar /home
例2:把/home目錄下包括它的子目錄全部做備份文件,并進(jìn)行壓縮,備份文件名為usr.tar.gz 。
$ tar czvf usr.tar.gz /home
例3:把usr.tar.gz這個備份文件還原并解壓縮。
$ tar xzvf usr.tar.gz
例4:查看usr.tar備份文件的內(nèi)容,并以分屏方式顯示在顯示器上。
$ tar tvf usr.tar | more
要將文件備份到一個特定的設(shè)備,只需把設(shè)備名作為備份文件名。
例5:用戶在/dev/fd0設(shè)備的軟盤中創(chuàng)建一個備份文件,并將/home 目錄中所有的文件都拷貝到備份文件中。
$ tar cf /dev/fd0 /home
要恢復(fù)設(shè)備磁盤中的文件,可使用xf選項:
$ tar xf /dev/fd0
將兩個文件打入一個tar包
tar cvf log.tar log.0000000007 DBVERSION
ls -ltr
rm doc.tgz
ls -ltr
tar zcvf doc.tgz docs/
ls -ltr
tar zcvf dvsdk-demos_4_02_00_01.tgz dvsdk-demos_4_02_00_01/
ls -ltr
tar zcvf example-applications.tgz example-applications/
cd ..
格式 tar -cvzf 備份的文件名 路徑
例
tar -cvzf home.tar.gz /home
tar [-cxtzjvfpPN] 文件與目錄 ....
參數(shù):
-c :建立一個壓縮文件的參數(shù)指令(create 的意思);
-x :解開一個壓縮文件的參數(shù)指令!
-t :查看 tarfile 里面的文件!
特別注意,在參數(shù)的下達(dá)中, c/x/t 僅能存在一個!不可同時存在!
因為不可能同時壓縮與解壓縮。
-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?
-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?
-v :壓縮的過程中顯示文件!這個常用,但不建議用在背景執(zhí)行過程!
-f :使用檔名,請留意,在 f 之后要立即接檔名喔!不要再加參數(shù)!
例如使用『 tar -zcvfP tfile sfile』就是錯誤的寫法,要寫成
『 tar -zcvPf tfile sfile』才對喔!
-p :使用原文件的原來屬性(屬性不會依據(jù)使用者而變)
-P :可以使用絕對路徑來壓縮!
-N :比后面接的日期(yyyy/mm/dd)還要新的才會被打包進(jìn)新建的文件中
Linux tar 的一些使用例子
1.打包
tar cvf sand.tar sand/
將當(dāng)前目錄的 sand 目錄打包為 sand.tar ,但基本沒有進(jìn)行壓縮...
tar zcvf sand.tar.gz sand/
將當(dāng)前目錄的 sand 目錄用tar打包,用gzip壓縮為 sand.tar.gz
tar vjcf sand.tar.gz2 sand/
將當(dāng)前目錄的 sand 目錄用tar打包,用bzip2壓縮為 sand.tar.gz2
2.解壓
tar xvf sand.tar sand/
解壓 sand.tar 包
tar zxvf sand.tar.gz sand/
解壓 sang.tar.gz 包
tar vjxf sand.tar.gz2 sand/
解壓 sang.tar.gz2 包
3.列出 tar 包中的目錄
tar tf sand.tar.gz
4.解壓tar包中的一個文件
tar zcvf sand.tar.gz sand/jiayi.txt
從 sand.tar.gz 中將 jiayi.txt 解壓出來
5.將比 jiayi.txt 創(chuàng)建晚的文件打包
tar -N 'jiayi.txt' -zcvf sand.tar.gz sand/
OR
tar -N '2008-09-25' -zcvf sand.tar.gz sand/
6.將除 lisa.txt 的文件打包
tar --exclude 'lisa.txt' -zcvf sand.tar.gz sand/
大致總結(jié)了一下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
解壓: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
---------------------------------------------
.tgz
解壓:tar zxvf FileName.tgz
壓縮:未知
.tar.tgz
解壓:tar zxvf FileName.tar.tgz
壓縮:tar zcvf FileName.tar.tgz FileName
---------------------------------------------
.zip
解壓:unzip FileName.zip
壓縮:zip FileName.zip DirName
---------------------------------------------
.rar
解壓:rar a FileName.rar
壓縮:rar e FileName.rar
rar請到:
http://www.rarsoft.com/download.htm 下載!
解壓后請將rar_static拷貝到/usr/bin目錄(其他由$PATH環(huán)境變量指定的目錄也可以):
[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環(huán)境變量指定的目錄也可以):
[root@www2 tmp]# cp lha /usr/bin/
參考資料:
http://jjylan.bokee.com