tar

通過SSH訪問服務(wù)器,難免會要用到壓縮柒桑,解壓縮弊决,打包,解包等魁淳,這時(shí)候tar命令就是是必不可少的一個(gè)功能強(qiáng)大的工具飘诗。

linux中最流行的tar是麻雀雖小,五臟俱全界逛,功能強(qiáng)大昆稿。

tar命令可以為linux的文件和目錄創(chuàng)建檔案。利用tar息拜,可以為某一特定文件創(chuàng)建檔案(備份文件)溉潭,也可以在檔案中改變文件,或者向檔案中加入新的文件少欺。

tar最初被用來在磁帶上創(chuàng)建檔案喳瓣,現(xiàn)在,用戶可以在任何設(shè)備上創(chuàng)建檔案赞别。利用tar命令畏陕,可以把一大堆的文件和目錄全部打包成一個(gè)文件,這對于備份文件或?qū)讉€(gè)文件組合成為一個(gè)文件以便于網(wǎng)絡(luò)傳輸是非常有用的氯庆。

首先要弄清兩個(gè)概念:打包和壓縮蹭秋。打包是指將一大堆文件或目錄變成一個(gè)總的文件扰付;壓縮則是將一個(gè)大的文件通過一些壓縮算法變成一個(gè)小文件。

為什么要區(qū)分這兩個(gè)概念呢仁讨?這源于Linux中很多壓縮程序只能針對一個(gè)文件進(jìn)行壓縮羽莺,這樣當(dāng)你想要壓縮一大堆文件時(shí),你得先將這一大堆文件先打成一個(gè)包(tar命令)洞豁,然后再用壓縮程序進(jìn)行壓縮(gzip bzip2命令)盐固。

linux下最常用的打包程序就是tar了,使用tar程序打出來的包我們常稱為tar包丈挟,tar包文件的命令通常都是以.tar結(jié)尾的刁卜。生成tar包后,就可以用其它的程序來進(jìn)行壓縮曙咽。

1.命令格式:

tar[必要參數(shù)][選擇參數(shù)][文件] 

2.命令功能:

用來壓縮和解壓文件蛔趴。tar本身不具有壓縮功能。他是調(diào)用壓縮功能實(shí)現(xiàn)的 

3.命令參數(shù):

必要參數(shù)有如下:

-A 新增壓縮文件到已存在的壓縮

-B 設(shè)置區(qū)塊大小

-c 建立新的壓縮文件

-d 記錄文件的差別

-r 添加文件到已經(jīng)壓縮的文件

-u 添加改變了和現(xiàn)有的文件到已經(jīng)存在的壓縮文件

-x 從壓縮的文件中提取文件

-t 顯示壓縮文件的內(nèi)容

-z 支持gzip解壓文件

-j 支持bzip2解壓文件

-Z 支持compress解壓文件

-v 顯示操作過程

-l 文件系統(tǒng)邊界設(shè)置

-k 保留原有文件不覆蓋

-m 保留文件不被覆蓋

-W 確認(rèn)壓縮文件的正確性

可選參數(shù)如下:

-b 設(shè)置區(qū)塊數(shù)目

-C 切換到指定目錄

-f 指定壓縮文件

--help 顯示幫助信息

--version 顯示版本信息

4.常見解壓/壓縮命令

tar 



解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包例朱,不是壓縮P⑶椤)



.gz



解壓1:gunzip FileName.gz

解壓2:gzip -d FileName.gz

壓縮:gzip FileName



.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 

5.使用實(shí)例

實(shí)例1:將文件全部打包成tar包

命令:



tar -cvf log.tar log2012.log

tar -zcvf log.tar.gz log2012.log

tar -jcvf log.tar.bz2 log2012.log



輸出:



[root@localhost test]# ls -al log2012.log

---xrw-r-- 1 root root 302108 11-13 06:03 log2012.log

[root@localhost test]# tar -cvf log.tar log2012.log 

log2012.log

[root@localhost test]# tar -zcvf log.tar.gz log2012.log

log2012.log

[root@localhost test]# tar -jcvf log.tar.bz2 log2012.log 

log2012.log

[root@localhost test]# ls -al *.tar*

-rw-r--r-- 1 root root 307200 11-29 17:54 log.tar

-rw-r--r-- 1 root root   1413 11-29 17:55 log.tar.bz2

-rw-r--r-- 1 root root   1413 11-29 17:54 log.tar.gz

說明:

tar -cvf log.tar log2012.log    僅打包,不壓縮洒嗤! 

tar -zcvf log.tar.gz log2012.log   打包后箫荡,以 gzip 壓縮 

tar -zcvf log.tar.bz2 log2012.log  打包后,以 bzip2 壓縮 

在參數(shù) f 之后的文件檔名是自己取的渔隶,我們習(xí)慣上都用 .tar 來作為辨識羔挡。 如果加 z 參數(shù),則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar包间唉; 如果加 j 參數(shù)绞灼,則以 .tar.bz2 來作為tar包名。

實(shí)例2:查閱上述 tar包內(nèi)有哪些文件

命令:



tar -ztvf log.tar.gz



輸出:



[root@localhost test]# tar -ztvf log.tar.gz

---xrw-r-- root/root    302108 2012-11-13 06:03:25 log2012.log

說明:

由于我們使用 gzip 壓縮的log.tar.gz终吼,所以要查閱log.tar.gz包內(nèi)的文件時(shí)镀赌,就得要加上 z 這個(gè)參數(shù)了。

實(shí)例3:將tar 包解壓縮

命令:



tar -zxvf /opt/soft/test/log.tar.gz



輸出:



[root@localhost test3]# ll

總計(jì) 0[root@localhost test3]# tar -zxvf /opt/soft/test/log.tar.gz

log2012.log

[root@localhost test3]# ls

log2012.log

[root@localhost test3]#

說明:

在預(yù)設(shè)的情況下际跪,我們可以將壓縮檔在任何地方解開的

實(shí)例4:只將 /tar 內(nèi)的 部分文件解壓出來

命令:



tar -zxvf /opt/soft/test/log30.tar.gz log2013.log



輸出:



[root@localhost test]# tar -zcvf log30.tar.gz log2012.log log2013.log 

log2012.log

log2013.log

[root@localhost test]# ls -al log30.tar.gz 

-rw-r--r-- 1 root root 1512 11-30 08:19 log30.tar.gz

[root@localhost test]# tar -zxvf log30.tar.gz log2013.log

log2013.log

[root@localhost test]# ll

-rw-r--r-- 1 root root   1512 11-30 08:19 log30.tar.gz

[root@localhost test]# cd test3

[root@localhost test3]# tar -zxvf /opt/soft/test/log30.tar.gz log2013.log

log2013.log

[root@localhost test3]# ll

總計(jì) 4

-rw-r--r-- 1 root root 61 11-13 06:03 log2013.log

[root@localhost test3]#

說明:

我可以透過 tar -ztvf 來查閱 tar 包內(nèi)的文件名稱商佛,如果單只要一個(gè)文件,就可以透過這個(gè)方式來解壓部分文件姆打!

實(shí)例5:文件備份下來良姆,并且保存其權(quán)限

命令:



tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log 



輸出:



[root@localhost test]# ll

總計(jì) 0

-rw-r--r-- 1 root root      0 11-13 06:03 log2014.log

-rw-r--r-- 1 root root      0 11-13 06:06 log2015.log

-rw-r--r-- 1 root root      0 11-16 14:41 log2016.log

[root@localhost test]# tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log 

log2014.log

log2015.log

log2016.log

[root@localhost test]# cd test6

[root@localhost test6]# ll

[root@localhost test6]# tar -zxvpf /opt/soft/test/log31.tar.gz 

log2014.log

log2015.log

log2016.log

[root@localhost test6]# ll

總計(jì) 0

-rw-r--r-- 1 root root 0 11-13 06:03 log2014.log

-rw-r--r-- 1 root root 0 11-13 06:06 log2015.log

-rw-r--r-- 1 root root 0 11-16 14:41 log2016.log

[root@localhost test6]#

說明:

這個(gè) -p 的屬性是很重要的,尤其是當(dāng)您要保留原本文件的屬性時(shí)

實(shí)例6:在 文件夾當(dāng)中幔戏,比某個(gè)日期新的文件才備份

命令:



tar -N "2012/11/13" -zcvf log17.tar.gz test



輸出:



[root@localhost soft]# tar -N "2012/11/13" -zcvf log17.tar.gz test

tar: Treating date `2012/11/13' as 2012-11-13 00:00:00 + 0 nanoseconds

test/test/log31.tar.gz

test/log2014.log

test/linklog.log

test/log2015.log

test/log2013.log

test/log2012.log

test/log2017.log

test/log2016.log

test/log30.tar.gz

test/log.tar

test/log.tar.bz2

test/log.tar.gz

說明:

實(shí)例7:備份文件夾內(nèi)容是排除部分文件

命令:



tar --exclude scf/service -zcvf scf.tar.gz scf/*



輸出:



[root@localhost test]# tree scf

scf

|-- bin

|-- doc

|-- lib

`-- service

     `-- deploy

            |-- info

            `-- product



7 directories, 0 files

[root@localhost test]# tar --exclude scf/service -zcvf scf.tar.gz scf/* 

scf/bin/

scf/doc/

scf/lib/

[root@localhost test]#
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玛追,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痊剖,老刑警劉巖韩玩,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陆馁,居然都是意外死亡找颓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門叮贩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來击狮,“玉大人,你說我怎么就攤上這事益老”肱睿” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵捺萌,是天一觀的道長档冬。 經(jīng)常有香客問我,道長桃纯,這世上最難降的妖魔是什么捣郊? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮慈参,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刮萌。我一直安慰自己驮配,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布着茸。 她就那樣靜靜地躺著壮锻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涮阔。 梳的紋絲不亂的頭發(fā)上猜绣,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機(jī)與錄音敬特,去河邊找鬼掰邢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛伟阔,可吹牛的內(nèi)容都是我干的辣之。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼皱炉,長吁一口氣:“原來是場噩夢啊……” “哼怀估!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤多搀,失蹤者是張志新(化名)和其女友劉穎歧蕉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體康铭,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡惯退,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了麻削。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒸痹。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖呛哟,靈堂內(nèi)的尸體忽然破棺而出叠荠,到底是詐尸還是另有隱情,我是刑警寧澤扫责,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布榛鼎,位于F島的核電站,受9級特大地震影響鳖孤,放射性物質(zhì)發(fā)生泄漏者娱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一苏揣、第九天 我趴在偏房一處隱蔽的房頂上張望黄鳍。 院中可真熱鬧,春花似錦平匈、人聲如沸框沟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忍燥。三九已至,卻和暖如春隙姿,著一層夾襖步出監(jiān)牢的瞬間梅垄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工输玷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留队丝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓饲嗽,卻偏偏與公主長得像炭玫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子貌虾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容